当前位置:  开发笔记 > 编程语言 > 正文

PHP正则表达式和javascript正则表达式之间有什么区别

如何解决《PHP正则表达式和javascript正则表达式之间有什么区别》经验,为你挑选了1个好方法。

我正在使用正则表达式我的正则表达式是/\[([^]\s]+).([^]]+)\]/g这在PHP中工作得很好[http://sdgdssd.com fghdfhdhhd] 但是当我使用这个正则表达式的javascript它与这个输入字符串不匹配

我的意见是 [http://sdgdssd.com fghdfhdhhd]



1> Wiktor Strib..:

在JavaScript正则表达式中,您必须始终转义]字符类的内部:

\[([^\]\s]+).([^\]]+)\]

请参阅正则表达式演示

JS解析[^]为*任何字符,包括正则表达式中的换行符,最后的字符类]符号作为文字].

在这方面,JS正则表达式引擎偏离了POSIX标准,其中智能放置用于匹配[]符号与括号表达式[^][].

如果]字符是第一个字符,则该字符被视为文字字符^:[^]abc].

在JS和Ruby中,这不是那样的:

您可以将未转动的闭合支架放在开口支架后面,或者在否定插入符号后面.[]x]匹配一个结束括号或一个x.[^]x]匹配任何不是结束括号或x.这在JavaScript中不起作用,JavaScript将其视为[]始终无法匹配的空字符类,并且[^]作为与任何单个字符匹配的否定空字符类.Ruby将空字符类视为错误.因此,JavaScript和Ruby都需要使用反斜杠转义括号,以将它们包含在字符类中作为文字.


奇怪的是```不需要在PCRE中转义.我总是出于本能逃脱,因为我认为如果不是这样就会扼杀它.
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有