PHP有两套正则库,一是posix兼容库(php5.3之前版本可用),而是perl兼容库(主力库)
perl兼容库中支持而js正则不支持的:
1、支持(?<!和(?<=回程断言
2、许多预置字符类(:alnum:)
3、支持组标识(?<>
4、支持子组同名(?|
5、支持独立子组(?>
6、支持条件子组(?()
7、支持递归子组(?R)
8、支持本地编码,js只支持unicode
9、修正器更多
10、等等等等细节上的丰富。
总之,js的正则库在php正则面前显得只是一个简约的基础库。
编程实现是细节活,粗枝大叶的结果就是问题多多。一定要弄清楚
所有语言中的正则表达式都是极其相似,有的只是做了少许改动javascript和php的正则表达式是有区别的
比如
javascript 换行用\n
php 换行用\r\n