‘壹’ java常用的几个正则方法
JAVA中正则表达式处理字符串的四个常用方法:匹配、分割、替换、截取。其跟字符串的常用函数相似,但是使用正则表达式会更简单、更加简洁。下面是具体的例子:
1 public class TestRegex {
2
3 public static void main(String[] args) {
4 String str = "";
5 String regex = "";
6
7 // 匹配
8 regex = "[1-9][a-z]";
9 getMatches(str, regex);
10
11 // 分割
12 str = "1a:abc123:";
13 regex = ":";
14 getSpilt(str, regex);
15
16 // 替换
17 str = "1223334444aaabbc";
18 String oldChar = "(.)\1+";
19 regex = "$1";
20 getReplace(str, oldChar, regex);
21
22 // 截取
23 str = "urlabc123";
24 regex = "(.*)";
25 getSubstring(str, regex);
26
27 }
28
29 public static void getMatches(String str, String regex) {
30 System.out.println(str.matches(regex));
31 }
32
33 public static void getSpilt(String str, String regex) {
34 String[] array = str.split(regex);
35 for (String t : array) {
36 System.out.println(t);
37 }
38 }
39
40 public static void getReplace(String str, String oldChar, String regex)
{
41 System.out.println(str.replaceAll(oldChar, regex));
42 }
43
44 public static void getSubstring(String str, String regex) {
45 Pattern p = Pattern.compile(regex);
46 Matcher m = p.matcher(str);
47 if (m.find()) {
48 System.out.println(m.group(1));
49 }
50 }
51 }
‘贰’ java正则表达式处理一段字符串得到指定字符后面的字符,
var b=""{hello:{"名字":"李四"}}""
var reg=new RegExp("李四","gi");
var a=ret.exec(b);
‘叁’ java正则匹配出所有类方法
java正则表达式提取需要用到Matcher类。
正则规则就是“一个数字加上大于等于0个非数字再加上结束符”
Pattern pattern
= Pattern.compile("(\\d)[^\\d]*$")
Matcher matcher
= pattern.matcher(s)
if(matcher.find())
System.out.println
(matcher.group(1)); } }
‘肆’ java正则表达式是什么
java正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。
和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。
正则表达式的基本操作:
正则表达式定义:符合一定规则的表达式。
作用:用于专门操作字符串。
特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。所以学习正则表达式,就是在学习一些特殊符号的使用。
好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差。
‘伍’ java工具类怎么定义
工具类的定义是以util或utils结尾,里面包含的变量和方法都必须要是静态的static方法,这样才能提供别人调用。
‘陆’ java 什么叫工具类
是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包
‘柒’ 关于java工具类的理解 为什么java要提出个工具类的概念,按照面向对象的思想为什么不直接把工具
工具类其实就是对于String,Collection,IO等常用类的功能的扩展。比如IO读写文件。其实大多数时候我希望有一个文件路径,然后调个方法就直接得到文件内容(字符串或者字节数组形式)。
如果没有工具类,那么你每个读文件的地方都有一段重复的代码。所以,你肯定会被这个功能提取出来。那么,你提取出来放哪儿呀?要知道这个功能可是在任何类都能调用的。所以,我们就放在FileUtil里面了。
这样,你以后读取文件时,你就找FileUtil的read方法,直接调用即可。
为什么要将方法和变量都写成静态的。因为,这些方法我只是想调用一下,不需要牵扯工具类中的任何属性和变量,所以,我就没有必要实例化了(new)。既然不需要实例化了,那么就用静态就行了。
‘捌’ 如何使用java的正则表达式提取html标签
//我随便写了一个工具类,getRegexData就是那个方法,你可以根据你的需求稍加改动即可因为我使用的
//URL而不是HttpClient,所以数据是全部获取过来了,你自己改改吧!不懂再问我
packagecom.wdy.util;
importjava.io.IOException;
importjava.io.InputStream;
importjava.net.URL;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
/**
*工具类
*@authorWDY
*
*/
publicclassTool{
publicstaticvoidmain(String[]args){
System.out.println(getRegexData("<img[]*src.*?jpg"","<imgsrc="img1.jpg"><imgsrc="img2.jpg""));
try{
URLurl=newURL("http://www..com");
StringstringData=getStringFromInputStream(url.openStream());
System.out.println(stringData+"----------------------------------------");
System.out.println();
System.out.println(getRegexData("http://.{6,70}?(png|jpg)",stringData));
}catch(IOExceptione){
e.printStackTrace();
}
}
/**
*给一个正则表达式,和数据,将正则匹配到的数据全数取出来
*
*@paramregex
*@paramdata
*@returnList<String>
*/
publicstaticList<String>getRegexData(Stringregex,Stringdata){
Patternpattern=Pattern.compile(regex);
Matchermatcher=pattern.matcher(data);
List<String>resultList=newArrayList<String>();
intindex=0;//搜索的位置
Stringtemp="";
/*从指定位置查找,如果找到了,就继续执行下面的代码*/
while(matcher.find(index)){
temp=matcher.group();//将匹配到的数据取出来放到集合中去
resultList.add(temp);
index+=temp.length();//将查找位置放到此时找到的数据后面
System.out.println(index);
}
returnresultList;
}
/**
*将输入流装成字符串
*@paramis
*@return
*/
(InputStreamis)throwsIOException{
StringBuildersbl=newStringBuilder();
byte[]buff=newbyte[1024*8];
intlen;
inti=0;
while((len=is.read(buff))!=-1){
sbl.append(newString(buff,0,len,"utf-8"));
System.out.println(i++);
}
System.out.println(sbl.length());
returnsbl.toString();
}
}
‘玖’ java中正则表达式属于哪个包
java.util.regex包
下面有两个常用的正则表达式类
java.util.regex.Matcher
java.util.regex.Pattern
使用方式:
publicstaticvoidmain(String[]args){
//电话号码
StringregexPattern="^(\d{3,4}-)?\d{6,8}(-\d{1,6})?$";
Patternpattern=Pattern.compile(regexPattern);
Matchermatcher=pattern.matcher("86771588-888");
System.out.println("是否匹配:"+matcher.matches());
}
结果:
是否匹配:true