javapattern(java pattern 正则表达式中的 +和 *分别是什么意思)
本文目录
- java pattern 正则表达式中的 +和 *分别是什么意思
- 关于java正则匹配没有匹配到最后一串,Pattern和Matcher方法
- java使用Pattern和Matcher获取html代码中的一串字符
- Java Pattern的用法是什么
java pattern 正则表达式中的 +和 *分别是什么意思
+号,表示匹配次数,n》=1。
*号,表示匹配次数,n》=0。
?号,本身表示匹配次数,n=0或n=1。
?号,紧跟匹配次数后面表述以非贪婪模式匹配,即满足条件的情况下,取匹配次数最少的。
例如:
\d+匹配"12345" ,第一次会匹配全部,下面就匹配不到了。
\d+?匹配"12345",第一次则只匹配1,第二次匹配2,匹配5次之后就匹配不到了。
关于java正则匹配没有匹配到最后一串,Pattern和Matcher方法
你的Java正则表达式没错(对于这个字符串),只是输出的for-i循环终止条件i《m.groupCount(); 少了一个等号,应该是i《=m.groupCount();这样匹配到的字符串"adfgex"就打印出来了.
完整的Java程序如下(改动的地方见注释)
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class AA {
public static void main(String args) {
String pattern="(.+)(,)(.+)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher("123456,adfgex");
System.out.println(m.groupCount());
if(m.find()){
for(int i=0;i《=m.groupCount();i++){//这里 i《m.groupCount();改成i《=m.groupCount();
System.out.print(i+":"+m.group(i)+"\t");
}
}
}
}
运行结果
3
0:123456,adfgex1:1234562:,3:adfgex
java使用Pattern和Matcher获取html代码中的一串字符
java使用pattern和Matcher获取html代码中的一串字符,主要是使用正则表达式来匹配html的标签,如下代码:
package com.qiu.lin.he;
import java.text.ParseException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Ceshi {
public static void main(String args) throws ParseException {
String string = "《span class=\"123class\"》75757574《/span》《/div》《span class=\"123class\"》12312341243《/span》《/div》";
Pattern pattern = Pattern.compile("》(+)《");//匹配html字符
Matcher matcher = pattern.matcher(string);
if (matcher.find()) {
matcher.reset();
while (matcher.find()) {//找到匹配的字符串
System.out.println("hit: " + matcher.group(1));
}
} else {
System.out.println(" NOT FOUND!");
}
}
}
结果如下:
Java Pattern的用法是什么
java 中pattern为正则表达式的编译表示形式。指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。例子如下:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches
在仅使用一次正则表达式时,可以方便地通过此类定义 matches 方法。此方法编译表达式并在单个调用中将输入序列与其匹配。
java 中pattern为正则表达式的编译表示形式。指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。例子如下:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches
在仅使用一次正则表达式时,可以方便地通过此类定义 matches 方法。此方法编译表达式并在单个调用中将输入序列与其匹配。