Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#和JavaScript正则表达式之间的区别?_C#_Javascript_.net_Regex - Fatal编程技术网

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、

C#和JavaScript正则表达式不同吗

有这些差异的列表吗?

首先,一些资源:

  • -请参阅页面底部的链接
以下是一些区别:

  • IE6和IE7中不支持前瞻。(在MDC指南中搜索
    x(?=y)
    ,以获取示例。)
  • JavaScript不支持命名的捕获组。示例:
    (?)
  • JavaScript支持的元字符列表要短得多

我们遇到了一个不同点,我在任何地方都没有看到文档,因此我将在这里发布它和解决方案,希望它能帮助别人

我们使用“[A-Z-[QVX]]”语法测试“一些但不是全部”字符类,例如“A到Z但不是Q、V或X”。不知道我们在哪里找到它,不知道它是否有文档记录,但它在.Net中工作

例如,在Powershell中,使用.Net regex类

[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]就足够了,不是吗?