正则表达式使用小结
在线测试工具 正则表达式语言由两种字符组成:原意文本字符和元字符。元字符使得表达式具有处理能力,如 [ ] ,*,^,w 之类的。 简单的介绍下常见的几个:
1.针对但个字符匹配的元字符: x : 转义字符。将字符转义。比如 b 就不是斜线 和字符b的意思了,而是元字符,代表单词边界的意义了。 . :匹配除n以外的任何字符。 [] :匹配中括号中的其中一个字符。如[abc],[a-z],[^abc] d :匹配0-9的数字。 w :匹配单个字符,字母数字或者下划线。[a-zA-Z0-9] s :匹配任意的空白字符。
2.针对字符串的限定符: b :单词边界。 $ :匹配以指定的字符串结尾。 如ab$。 ^ :字符串必须以指定字符串开始。 "^hh" :字符串必须以hh 开始。 * :匹配零个到多个的字符。 ? :匹配零个到一个字符。 {} :匹配多个字符。如 {n},{n,},{n,m} + :匹配至少一个字符。
还有一个特殊的字符: :转义字符,如果想是单纯的字符""和"w"使用,那么就得转义 :w
1.分割汉字 分割汉字 不能直接使用splite()方法分割汉字。 String res = "四川省成都市武侯区高升桥路2号-附3号"; String strin = ""; if (res.contains("路")) { int i = res.indexOf("路"); strin = res.substring(0,i + 1); } 上面的例子是按“路分割,得到前面的字符串。 2.(?0d{2}[) -]?d{8}: 这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等。我们对它进行一些分析吧:首先是一个转义字符(,它能出现0次或1次(?),然后是一个0,后面跟着2个数字(d{2}),然后是)或-或空格中的一个,它出现1次或不出现(?),最后是8个数字(d{8})。这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等。我们对它进行一些分析吧:首先是一个转义字符(,然后是一个0,后面跟着2个数字(d{2}),然后是)或-或空格中的一个,它出现1次或不出现(?),最后是8个数字(d{8})。
注意: 1.对于中文字符的匹配是采用其对应的 Unicode 编码来匹配的,对于单个 Unicode 字符,如 u4e00 表示汉字“一”, u9fa5 表示汉字“龥”,在 Unicode 编码中这分别是所能表示的汉字的第一个和最后一个的 Unicode 编码,在 Unicode 编码中能表示 20901 个汉字。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |