字符串中的正则表达式特殊符号
来源:互联网 发布:网络协同 系统架构 编辑:程序博客网 时间:2024/04/30 01:41
问题:
String s1="111+222+333";
System.out.println(s1.split("+").length);
//输出时提示错误:
java.util.regex.PatternSyntaxException: Dangling meta character '+' near index
问题出现在加号附近,查询相关的资料显示,+、*、|、/等符号在正则表达示中有相应的不同意义。
正则表达式的基本用法 zt
1、“.”为通配符,表示任何一个字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;
2、“[]”,在[]内可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc;
但不可以匹配“ancc”,a到z可以写成[a-z],0到9可以写成[0-9];
3、数量限定符号,表示匹配次数(或者叫做长度)的符号:
包括:“*”??0次或者多次
“+”??1次或者多次
“?”??0次或者1次
“{n}”??匹配n次,n为整数
“{n,m}”??匹配从n到m之间的某个数的次数;n和m都是整数;
“{n,}”??匹配n到无穷次之间任意次数;
“{,m}”??匹配0到m之间任意次数;
他们放到匹配格式的后面:
例如:
电话号码:024-84820482,02484820482(假设前面3或者4位,后面7或者8位,并且中间的减号可有可无)
都是符合规定的,那么可以用如下格式来匹配:[0-9]{3,4} /-? [0-9]{7,8};
注意:“/”为转义字符,因为“-”在正则表达式用有代表一个范围的意义,例如:前面所说的[0-9],
所以它需要转义字符“/”进行转义才可使用;
4、“^”为否符号,表示不想匹配的符号,例如:[^z][a-z]+可以匹配所有除“z”开头的以外的所有字
符串(长度大于2,因为“+”表示大于等于1的次数,从第二位开始都是小写英文字符);
如果^放到[]的外边则表示以[]开头的字符串;^[az][a-z]+表示a或者z开头的长度大于等于2的英文字符串;
5、“|”或运算符,例如:a[n|bc|cb]c可以匹配“abcc”,“anc”,“acbc”;
6、“$”以它前面的字符结尾的;例如:ab+$就可以被“abb”,“ab”匹配;
7、一些简单表示方法:
/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],就是非空格字符;
明白了这些以后,我们再返回头看看它们如何被运用呢?一般来讲只需要加[]、或是//即可。
举例来讲:
String s1="111+222+333";
System.out.println(s1.split("[+]").length);
或是
String s1="111+222+333";
System.out.println(s1.split("//+").length);
其他用法类同。
String s1="111+222+333";
System.out.println(s1.split("+").length);
//输出时提示错误:
java.util.regex.PatternSyntaxException: Dangling meta character '+' near index
问题出现在加号附近,查询相关的资料显示,+、*、|、/等符号在正则表达示中有相应的不同意义。
正则表达式的基本用法 zt
1、“.”为通配符,表示任何一个字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;
2、“[]”,在[]内可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc;
但不可以匹配“ancc”,a到z可以写成[a-z],0到9可以写成[0-9];
3、数量限定符号,表示匹配次数(或者叫做长度)的符号:
包括:“*”??0次或者多次
“+”??1次或者多次
“?”??0次或者1次
“{n}”??匹配n次,n为整数
“{n,m}”??匹配从n到m之间的某个数的次数;n和m都是整数;
“{n,}”??匹配n到无穷次之间任意次数;
“{,m}”??匹配0到m之间任意次数;
他们放到匹配格式的后面:
例如:
电话号码:024-84820482,02484820482(假设前面3或者4位,后面7或者8位,并且中间的减号可有可无)
都是符合规定的,那么可以用如下格式来匹配:[0-9]{3,4} /-? [0-9]{7,8};
注意:“/”为转义字符,因为“-”在正则表达式用有代表一个范围的意义,例如:前面所说的[0-9],
所以它需要转义字符“/”进行转义才可使用;
4、“^”为否符号,表示不想匹配的符号,例如:[^z][a-z]+可以匹配所有除“z”开头的以外的所有字
符串(长度大于2,因为“+”表示大于等于1的次数,从第二位开始都是小写英文字符);
如果^放到[]的外边则表示以[]开头的字符串;^[az][a-z]+表示a或者z开头的长度大于等于2的英文字符串;
5、“|”或运算符,例如:a[n|bc|cb]c可以匹配“abcc”,“anc”,“acbc”;
6、“$”以它前面的字符结尾的;例如:ab+$就可以被“abb”,“ab”匹配;
7、一些简单表示方法:
/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],就是非空格字符;
明白了这些以后,我们再返回头看看它们如何被运用呢?一般来讲只需要加[]、或是//即可。
举例来讲:
String s1="111+222+333";
System.out.println(s1.split("[+]").length);
或是
String s1="111+222+333";
System.out.println(s1.split("//+").length);
其他用法类同。
- 字符串中的正则表达式特殊符号
- 字符串中的正则表达式特殊符号
- [转]字符串中的正则表达式特殊符号
- 字符串中的正则表达式特殊符号 转
- 正则表达式中的特殊符号
- 正则表达式中的特殊符号
- 正则表达式 中的特殊符号
- 举例说明如何使用正则表达式去掉字符串中的一些特殊符号
- php中正则表达式中的特殊符号
- php中正则表达式中的特殊符号
- 正则表达式中的特殊符号 及实例
- php中正则表达式中的特殊符号
- linux中的正则表达式中特殊符号
- 正则表达式中的特殊符号 及实例
- 字符串中的正则表达式
- 特殊符号正则表达式
- 特殊符号的正则表达式
- JS正则表达式检测字符串中特殊符号方法
- CSDN上的第一篇文章
- Hibernate开发心得
- Hibernate:HQL/QBC查询语言比较的用法(1)
- 前段时间第一次闯入某学院的网站
- Hibernate:HQL/QBC查询语言比较的用法(2)
- 字符串中的正则表达式特殊符号
- 闲话UI: 最小化
- [翻译] Effective C++, 3rd Edition, Item 44: 从 templates(模板)中分离出 parameter-independent(参数无关)的代码(下)
- 项目中应用ant
- 老蒋的事迹
- 封装变化以实现去耦合
- 深入剖析JSP和Servlet对中文的处理
- 高效的TreeView构建方法
- 1111