更新时间:2020-06-19 13:32:00 来源:极悦 浏览2497次
包java.util.regex包含三个类,以支持正则表达式的完整版本。
模式
匹配
PatternSyntaxException
Pattern保存正则表达式的编译形式。
Matcher将要匹配的字符串与模式相关联,并执行实际匹配。
PatternSyntaxException表示格式错误的正则表达式中的错误。
编译正则表达式
没有公共构造函数的模式是不可变的,可以共享。
Pattern类包含一个静态compile()方法,它返回一个Pattern对象。
compile()方法是重载的。
static Pattern compile(String regex)
static Pattern compile(String regex,int flags)
以下代码将正则表达式编译为Pattern对象:
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
// Prepare a regular expression
String regex = "[a-z]@.";
// Compile the regular expression into a Pattern object
Pattern p = Pattern.compile(regex);
}
}
compile()方法的第二个版本设置修改模式匹配方式的标志。
flags参数是一个位掩码,并在Pattern类中定义为int常量。
Flag描述Pattern.CANON_EQ启用规范等效。Pattern.CASE_INSENSITIVE启用不区分大小写的匹配。Pattern.COMMENTS启用不区分大小写的匹配。...Pattern.DOTALL允许在模式中的空格和注释。
忽略以#开头的空格和嵌入的注释,直到行的结尾。Pattern.LITERAL启用模式的文字解析。这个标志使元字符和转义序列作为正常字符。Pattern.MULTILINE启用多行模式。默认情况下,^和$匹配输入序列的开始和结束。此标志使模式仅逐行匹配或输入序列的末尾。Pattern.UNICODE_CASE启用支持Unicode的大小写。与CASE_INSENSITIVE标志一起,可以根据Unicode标准执行不区分大小写的匹配。Pattern.UNICODE_ CHARACTER_CLASS启用预定义字符类和POSIX字符类的Unicode版本。设置此标志时,预定义字符类和POSIX字符类符合Unicode技术标准。Pattern.UNIX_LINES启用Unix行模式。设置此标志时,只有\n字符被识别为行终止符。
例子
以下代码编译设置CASE_INSENSTIVE和DOTALL标志的正则表达式。
import java.util.regex.Pattern;
public class Main{
public static void main(String[]args){
String regex="[a-z] .";
Pattern p=Pattern.compile(regex,Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
}
}
例2
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String args[]) {
Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
String candidateString = "Java. java JAVA jAVA";
Matcher matcher = p.matcher(candidateString);
// display the latter match
System.out.println(candidateString);
matcher.find(11);
System.out.println(matcher.group());
// display the earlier match
System.out.println(candidateString);
matcher.find(0);
System.out.println(matcher.group());
}
}
上面的代码生成以下结果。
以上就是极悦java培训机构的小编针对“Java注释正则表达式模式”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习