博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式 学习笔记5.2
阅读量:6455 次
发布时间:2019-06-23

本文共 2044 字,大约阅读时间需要 6 分钟。

M多行模式

作用:更改 和 的匹配规定,它们可以匹配字符串内部各行文本的开头和结束位置
\A 和 \Z 则不受影响
在讲锚点的时候,说过, $一般情况下,只能能匹配整个字符串的开头和结尾位置。
看例子:
public
 
class
 MultiLine {
public
 
static
 
void
 main(String[] args) {
String str = 
"<a href=www.sina.com.cn>\nSINA\n</a>"
;
String regex = 
"^SINA$"
;
Pattern p = Pattern.
compile
(regex);
Matcher m = p.matcher(str);
if
(m.find()){
System.
out
.println(str + 
"能够匹配正则:"
 + regex);
}
else
{
System.
out
.println(str + 
"不能够匹配正则:"
 + regex);
}
}
}
运行结果:
匹配是否包含:
SINA
<a href=www.sina.com.cn>
SINA
</a>不能够匹配正则:^SINA$
现在指定多行模式:
Pattern p = Pattern.
compile
(regex,Pattern.
MULTILINE
);
运行结果:
<a href=www.sina.com.cn>
SINA
</a>能够匹配正则:^SINA$
说明:
int java.util.regex.
.MULTILINE = 8 [0x8]
MULTILINE
public static final int 
MULTILINE
Enables multiline mode. 
In multiline mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the input sequence. By default these expressions only match at the beginning and the end of the entire input sequence.
Multiline mode can also be enabled via the embedded flag expression (?m).
See Also:
X: 注释模式
作用:在正则表达式内部可以使用注释
形式:注释以 开头,以换行符结束(或直到表达式的末尾)
使用此模式后,会忽略正则表达式中的所有空白字符
我们知道,如果正则表达式非常复杂,代码阅读者通常会被搞得一头雾水。添加注释,可以方便代码阅读者了解意图。
例子:
public
 
class
 CommentMode {
public
 
static
 
void
 main(String[] args) {
String str = 
"happymaster@163.com"
;
String regex = 
"\\w+ #username\n"
 + 
"@"
 +
"\\S+ #hostname"
;
Pattern p = Pattern.
compile
(regex,Pattern.
COMMENTS
);
Matcher m = p.matcher(str);
if
(m.find()){
System.
out
.println(str + 
"能够匹配正则:"
 + regex);
}
else
{
System.
out
.println(str + 
"不能够匹配正则:"
 + regex);
}
}
}
运行结果:
happymaster@163.com能够匹配正则:\w+ #username
@\S+ #hostname
说明:
int java.util.regex.
.COMMENTS = 4 [0x4]
COMMENTS
public static final int 
COMMENTS
Permits whitespace and comments in pattern. 
In this mode, whitespace is ignored, and embedded comments starting with # are ignored until the end of a line.
Comments mode can also be enabled via the embedded flag expression (?x).
See Also:
本文转自jooben 51CTO博客,原文链接:http://blog.51cto.com/jooben/321019

转载地址:http://jfbzo.baihongyu.com/

你可能感兴趣的文章
dubbo问题总结
查看>>
Struts2和Spring MVC的区别
查看>>
理解Javascript参数中的arguments对象
查看>>
p2:千行代码入门python
查看>>
bzoj1106[POI2007]立方体大作战tet*
查看>>
spring boot configuration annotation processor not found in classpath问题解决
查看>>
【转】正则基础之——神奇的转义
查看>>
团队项目测试报告与用户反馈
查看>>
MyBatis(1)——快速入门
查看>>
对软件工程课程的期望
查看>>
Mysql中文字符串提取datetime
查看>>
CentOS访问Windows共享文件夹的方法
查看>>
IOS 与ANDROID框架及应用开发模式对比一
查看>>
由中序遍历和后序遍历求前序遍历
查看>>
JQUERY Uploadify 3.1 C#使用案例
查看>>
coursera 北京大学 程序设计与算法 专项课程 完美覆盖
查看>>
firewall 端口转发
查看>>
wndows make images
查看>>
FS系统开发设计(思维导图)
查看>>
我学习参考的网址
查看>>