JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\)
JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\)
一、总结
js正则:var patrn=/^[0-9]{1,20}$/;
php正则:$pattern='/(\d)(\d)/';
java正则:String pattern = "(\\D*)(\\d+)(.*)";
java没有分解符,java中的转义字符是\\。
JS和PHP和JAVA的正则表达式的区别:规则大致一样,注意细微处的差别
二、JS和PHP的正则表达式的区别
总体上,PHP的正则比标准javascript的要强大。
PHP有两套正则库,一是posix兼容库(php5.3之前版本可用),而是perl兼容库(主力库)
perl兼容库中支持而js正则不支持的:
1、支持(?<!和(?<=回程断言
2、许多预置字符类(:alnum:)
3、支持组标识(?<>
4、支持子组同名(?|
5、支持独立子组(?>
6、支持条件子组(?()
7、支持递归子组(?R)
8、支持本地编码,js只支持unicode
9、修正器更多
10、等等等等细节上的丰富。
总之,js的正则库在php正则面前显得只是一个简约的基础库。
编程实现是细节活,粗枝大叶的结果就是问题多多。一定要弄清楚
js正则实例:
校验是否全由数字组成:
1 function isDigit(s) 2 { 3 var patrn=/^[0-9]{1,20}$/; 4 if (!patrn.exec(s)) return false 5 return true 6 }
校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
1 function isRegisterUserName(s) 2 { 3 var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; 4 if (!patrn.exec(s)) return false 5 return true 6 }
三、java的正则表达式和php的正则表达式的区别
正则表达式以perl语言的功能最全最强大。
其他语言的正则表达式都以perl语言为基础。
但是各个语言之间有区别。
PHP和Java语言之间的正则表达式有一定的区别。
把PHP的正则表达式的反斜杠“\”变成JAVA的双反斜杠“\\”才表示转义;还有JAVA没有PHP正则的分界符,如PHP是#^a-b#,而JAVA ^a-b是直接写表达式的,就这点区别
php正则实例:
将字符串中”age13gegep3iorji65k65k”;中出现的连续两个数字改为第二个数字,如字符串中13被改为3
$str='age13gegep3iorji65k65k';
$pattern='/(\d)(\d)/';
$str=preg_replace($pattern,'$2', $str);
java正则实例:
从一个给定的字符串中找到数字串:
String line = "This order was placed for QT3000! OK?"; String pattern = "(\\D*)(\\d+)(.*)";
匹配验证-验证Email是否正确
1 public static void main(String[] args) { 2 // 要验证的字符串 3 String str = "service@xsoftlab.net"; 4 // 邮箱验证规则 5 String regEx = "[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}"; 6 // 编译正则表达式 7 Pattern pattern = Pattern.compile(regEx); 8 // 忽略大小写的写法 9 // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE); 10 Matcher matcher = pattern.matcher(str); 11 // 字符串是否与正则表达式相匹配 12 boolean rs = matcher.matches(); 13 System.out.println(rs); 14 }
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-12-13:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672