正则表达式中的特殊符号
2009-12-21 11:17
453 查看
正则表达式使用特殊符号。我将各种符号以及其意义和用法简单的介绍一下:
/ 表示在其后的文字是特殊符号。例:”n”和”n”是一致的。”/n”和换行符是一致的。
^ 和输入的开始一致。
$ 以它前面的字符结尾的;例如:ab+$就可以被“abb”,“ab”匹配;
* 与此符号之前的文字0次以上相同的话,两者一致。例:”zo*”和”zoo”,”z”都一致。
+ 与此符号之前的文字1次以上相同的话,两者一致。例:”zo*”和”zoo”一致,但和”z”不一致。
? 与此符号之前的文字0次或1次相同的话,两者一致。例:”a?ve?”和”never”的”ve”一致。
. 为通配符,表示任何一个字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;(与除了换行符的所有单一文字一致。)
| 或运算符,例如:a[n|bc|cb]c可以匹配“abcc”,“anc”,“acbc”;
(正则表达式) 以所指定的表达式寻找一致文字。如果找到了,储存下来。一致的部分可以从Match方法获得的阵列中找到。
x|y x和y的任意一方相同都会被认为一致。例:”(z|f)ood”和”zood”,”food”都一致。
{n} n是0以上的整数。与其前的文字n次相同的话,两者一致。例:”o{2}”和”Bob”中的”o”不一致,与”foooood”中的前两个”o”一致。
{n,} n是0以上的整数。与其之前的文字至少n次相同才一致。
{,n} n是0以上的整数。匹配n到无穷次之间任意次数。
{n,m} 两者整数。n至m范围的次数一致。
[xyz] 与中括号中的文字任意一个相同都被认为一致。
[^xyz] 与上面的相反。
[a-z] 文字的范围,从”a”到”z”的文字都被认为一致。
[^a-z] 与上面的相反。
[] 在[]内可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc;但不可以匹配“ancc”,a到z可以写成[a-z],0到9可以写成[0-9];
例如:
电话号码:024-84820482,02484820482(假设前面3或者4位,后面7或者8位,并且中间的减号可有可无)
都是符合规定的,那么可以用如下格式来匹配:[0-9]{3,4} /-? [0-9]{7,8};
-注意:“/”为转义字符,因为“-”在正则表达式用有代表一个范围的意义,例如:前面所说的[0-9],
所以它需要转义字符“/”进行转义才可使用;
/b 表示单词的末尾。例:”er/b”和”never”的”er”一致,但和”verb”的”er”不一致。
/B 表示非单词的末尾。
/d 表示数字。
/D 表示非数字。
/s 表示空格。
/S 表示非空格。
/w 表示所有字母数字。
/W 表示非所有字母数字。
解说:/d表示[0-9];/D表示[^0-9];/w表示[A-Z0-9];/W表示[^A-Z0-9];/s表示[/t/n/r/f],就是空格字符包括tab,空格等等;/S表示[^/t/n/r/f],就是非空格字符
i (忽略大小写) /* 注意点 */
g (全文查找出现的所有 pattern) /* 注意点 */
gi (全文查找、忽略大小写)/* 注意点 */
/num num应该被赋予一个正数。与已经储存的部分比较。例:”(.)/1″和任意的两个连续的相同
文字一致。
了解了这些之后看下面的注意点:
String s1=”111+222+333″;
System.out.println(s1.split(“+”).length);
//输出时提示错误:
java.util.regex.PatternSyntaxException: Dangling meta character ‘+’ near index
问题出现在加号附近,查询相关的资料显示,+、*、|、/等符号在正则表达示中有相应的不同意义。
需要这样:
String s1=”111+222+333″;
System.out.println(s1.split(“[+]“).length);
或是
String s1=”111+222+333″;
System.out.println(s1.split(“//+”).length);
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/benjaminwu198818/archive/2009/03/25/4023878.aspx
/ 表示在其后的文字是特殊符号。例:”n”和”n”是一致的。”/n”和换行符是一致的。
^ 和输入的开始一致。
$ 以它前面的字符结尾的;例如:ab+$就可以被“abb”,“ab”匹配;
* 与此符号之前的文字0次以上相同的话,两者一致。例:”zo*”和”zoo”,”z”都一致。
+ 与此符号之前的文字1次以上相同的话,两者一致。例:”zo*”和”zoo”一致,但和”z”不一致。
? 与此符号之前的文字0次或1次相同的话,两者一致。例:”a?ve?”和”never”的”ve”一致。
. 为通配符,表示任何一个字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;(与除了换行符的所有单一文字一致。)
| 或运算符,例如:a[n|bc|cb]c可以匹配“abcc”,“anc”,“acbc”;
(正则表达式) 以所指定的表达式寻找一致文字。如果找到了,储存下来。一致的部分可以从Match方法获得的阵列中找到。
x|y x和y的任意一方相同都会被认为一致。例:”(z|f)ood”和”zood”,”food”都一致。
{n} n是0以上的整数。与其前的文字n次相同的话,两者一致。例:”o{2}”和”Bob”中的”o”不一致,与”foooood”中的前两个”o”一致。
{n,} n是0以上的整数。与其之前的文字至少n次相同才一致。
{,n} n是0以上的整数。匹配n到无穷次之间任意次数。
{n,m} 两者整数。n至m范围的次数一致。
[xyz] 与中括号中的文字任意一个相同都被认为一致。
[^xyz] 与上面的相反。
[a-z] 文字的范围,从”a”到”z”的文字都被认为一致。
[^a-z] 与上面的相反。
[] 在[]内可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc;但不可以匹配“ancc”,a到z可以写成[a-z],0到9可以写成[0-9];
例如:
电话号码:024-84820482,02484820482(假设前面3或者4位,后面7或者8位,并且中间的减号可有可无)
都是符合规定的,那么可以用如下格式来匹配:[0-9]{3,4} /-? [0-9]{7,8};
-注意:“/”为转义字符,因为“-”在正则表达式用有代表一个范围的意义,例如:前面所说的[0-9],
所以它需要转义字符“/”进行转义才可使用;
/b 表示单词的末尾。例:”er/b”和”never”的”er”一致,但和”verb”的”er”不一致。
/B 表示非单词的末尾。
/d 表示数字。
/D 表示非数字。
/s 表示空格。
/S 表示非空格。
/w 表示所有字母数字。
/W 表示非所有字母数字。
解说:/d表示[0-9];/D表示[^0-9];/w表示[A-Z0-9];/W表示[^A-Z0-9];/s表示[/t/n/r/f],就是空格字符包括tab,空格等等;/S表示[^/t/n/r/f],就是非空格字符
i (忽略大小写) /* 注意点 */
g (全文查找出现的所有 pattern) /* 注意点 */
gi (全文查找、忽略大小写)/* 注意点 */
/num num应该被赋予一个正数。与已经储存的部分比较。例:”(.)/1″和任意的两个连续的相同
文字一致。
了解了这些之后看下面的注意点:
String s1=”111+222+333″;
System.out.println(s1.split(“+”).length);
//输出时提示错误:
java.util.regex.PatternSyntaxException: Dangling meta character ‘+’ near index
问题出现在加号附近,查询相关的资料显示,+、*、|、/等符号在正则表达示中有相应的不同意义。
需要这样:
String s1=”111+222+333″;
System.out.println(s1.split(“[+]“).length);
或是
String s1=”111+222+333″;
System.out.println(s1.split(“//+”).length);
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/benjaminwu198818/archive/2009/03/25/4023878.aspx
相关文章推荐
- 举例说明如何使用正则表达式去掉字符串中的一些特殊符号
- day 17 特殊符号与正则表达式
- 鱼c笔记——Python正则表达式(二):特殊符号及贪婪非贪婪
- [转]validation验证控件案例以及正则表达式中几个特殊符号的说明!
- 正则表达式简单特殊符号说明
- 正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
- 正则表达式验证系统登录密码必须由字母数字和特殊符号组成
- 正则表达式中的特殊符号 及实例
- Linux中的特殊符号与正则表达式
- 扩展正则表达式多出来的几个特殊符号
- mysql语法、特殊符号及正则表达式的使用
- linux中的正则表达式中特殊符号
- Python3 正则表达式特殊符号及用法(详细列表)
- 正则表达式符号及特殊字符一览
- JS正则表达式之特殊符号
- 12.25-- 特殊符号系列,通配符与正则表达式
- 正则表达式及其常用特殊符号和字符
- 正则表达式符号及特殊字符一览
- 正则表达式 特殊符号系列 通配符系列
- 字符串中的正则表达式特殊符号