Java 正则表达式

次数匹配符号
符号 次数
? 0次或者1次
* 0次或者多次
+ 1次或者多次
*+? 作用域为该符号前面的字符串
{n} 精确为 n 次
{n,m} 精确为 n 到 m 次
范围匹配符号
符号 描述
^ 行开头 注意:^在 中括号 开头位置,表示排除中括号内的字符。
$ 行结尾
\b 一个字符边界
\B 一个非字符边界
\A 输入的开始
\G 结束前的匹配
\Z 终端结束前的输入,如果有的话
\z 最后的输入
常用符号的等价正则表达式
符号 等价的正则表达式
\d [0-9]
\D [^0-9]
\w [a-zA-Z_0-9]
\W [^\w]
\s [\t\n\x0B\f\r]
\S [^\s]
^Hello 开头要以 Hello 开始。如: Hello World
meet you$ 结尾要以 meet you 结尾。如:nice to meet you
^BTW$ 只有 BTW 符合要求
op?或者op{0,1} 匹配以 o 开头 且 后面 不包含 p 或 包含一个 p 的字符串。如:o, op, open
op*或者op{0,} 匹配以 o 开头 且 后面可包含 p 或 包含多个 p 的字符串。如:o, op, open
op+或者op{1,} 匹配以 o 开头 且 o 后面至少包含 一个 或 多个 p 的字符串。如:op, open
o?p+$ 匹配以一个 o 或不包含 o, 但至少以 p 结尾的字符串。如:p, op
jk{2} 匹配条件: j后面含有 2 个k 的字符串
jk{2,} 匹配条件: j后面含有 2 个或 2 个以上个k 的字符串
jk{2,5} 匹配条件: j后面含有 2 至 5 个 k 的字符串
jk(lmn)* 匹配条件: jk 后面 没有 或 含有 1 个 lmn 的字符串
jk(lmn){1,5} 匹配条件: jk 后面含有 1 - 5 个 lmn 的字符串
jack|tom 匹配条件: 含有 jack 或 tom 的字符串
(hi|j)klmn 匹配条件: 含有 hiklmn 或 jklmn 的字符串
(x|y)*z 匹配条件: 含有 0 个 或多个 x 或 y, 并且 x 或 y 后面含有 z 的字符串
. 可代表 除去\n以外 的任意一个字符
[\n.] 包含\n的任意一个字符
[] 中括号 只匹配 一个字符。如:[abc]匹配单个 a, b 或 c 。 同义: a|b|c
[a-g] 匹配条件: a - g 单个字符。同义: a|b|c|d|e|f|g 或[abcdefg]
^[a-zA-Z] 匹配条件: 以大小写开头的字符串
b.[0-9] 匹配条件: b 后面含有一个除了 \n 以外的任意字符,并且任意字符后面含有一个 0-9 的阿拉伯数字
^.{3}$ 匹配条件: 以三个任意字符串结尾
[0-9]% 匹配条件: 如同 6%, 9% 的字符串
,[0-9a-zA-Z] 匹配条件: , 加 数字或字母 结尾的字符串。
%[^a-zA-Z]% 匹配条件: 在两个百分号之间匹配不含有字母的字符串。如:%1%, %123%
[*\+?{}.] 匹配条件:*\+?{}.这些特殊字符在中括号内将失去特殊含义,匹配含有这些字符的字符串。

实例一:银行货币系统录入检查,录入的数字必须为正整数,单个及首个数字不能为零。查看源码DemoOne.java

实例二:增加难度,银行货币系统录入检查,录入的字符必须为正数或正小数,单个字符不能为零。如果录入正小数,小数点之后必须含有至少一位数字。查看源码DemoTwo.java

10/17/2011

实例三:邮件地址验证。查看源码Email.java

分析(每个邮件提供商规则不同,这里所列的规则只局限于代码实现。):

  • 邮件用户名位置不能以_ 或 ─ 或 .开始。例如: -hello@example.com 不符合规则
  • 用户名的字符数须介于 6 到 30 之间 (Gmail 规则)
  • 域名名称前面含有@
  • 域名名称位置不能以开始。 例如: hello@-example.com 不符合规则
  • 域名名称后面含有.
  • 域名后缀字符个数为:2-4个。 例如: google.com, google.cn, google.mobi

10/18/2011

实例四:微数据(Microdata)挖掘。查看源码Microdata.java

分析 (仅仅基础实现,URL转码,服务器状态核实不再本文讨论范围内。):

  • 微数据(Microdata)就是向 HTML标签内部嵌入机读数据
  • 该实例只匹配关键字 itemtype
  • 并输出 itemtype 获取词汇 URL

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值