C#和JavaScript正则表达式之间的区别?
C#和JavaScript正则表达式不同吗 有这些差异的列表吗?首先,一些资源:C#和JavaScript正则表达式之间的区别?,c#,javascript,.net,regex,C#,Javascript,.net,Regex,C#和JavaScript正则表达式不同吗 有这些差异的列表吗?首先,一些资源: -请参阅页面底部的链接 以下是一些区别: IE6和IE7中不支持前瞻。(在MDC指南中搜索x(?=y),以获取示例。) JavaScript不支持命名的捕获组。示例:(?) JavaScript支持的元字符列表要短得多 我们遇到了一个不同点,我在任何地方都没有看到文档,因此我将在这里发布它和解决方案,希望它能帮助别人 我们使用“[A-Z-[QVX]]”语法测试“一些但不是全部”字符类,例如“A到Z但不是Q、
- -请参阅页面底部的链接
- IE6和IE7中不支持前瞻。(在MDC指南中搜索
,以获取示例。)x(?=y)
- JavaScript不支持命名的捕获组。示例:
(?)
- JavaScript支持的元字符列表要短得多
[regex]::ismatch("K", "^[A-Z-[QVX]]$")
返回true。在JavaScript中测试相同的输入和模式,它将返回false,但在JavaScript中对“^[A-Z]$”测试“K”,它将返回true
您可以使用更为传统的负前瞻方法来表示“A到Z,而不是Q、V或X”,例如“^(?![QVX])[A-Z]$”,这将在Powershell和(现代)JavaScript中都可以使用
鉴于Ben Atkin在上文中关于IE6和IE7不支持前瞻性的观点,以防愚弄(或IE7)的方式实现这一点的唯一方法可能是将表达式扩展出来,例如“[a-Z-[QVX]”->“abcdefghijjklmnoprstuwyz”。哎哟。那么[a-PR-UWYZ]就足够了,不是吗?