【问题标题】:Differences in regex between java .net and javascript?java .net和javascript之间正则表达式的区别?
【发布时间】:2012-09-13 07:54:35
【问题描述】:

我正在开发一个多平台系统。我们想使用正则表达式来测试某种格式的字符串。正则表达式将在数据库中编写一次,并由 3 个不同的平台使用。那么您知道正则表达式的编写方式是否存在差异?如果是,是完全不同还是只有几处不同?

这是一个例子:

[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}

问候

【问题讨论】:

标签: java javascript .net regex


【解决方案1】:

简单的正则表达式模式适用于不同的实现,但there are defferences 用于更复杂的匹配。然而,常见的变体数量有限,即 POSIX 和 Perl 正则表达式。因此,您可以在 DB 中为它们设置两列,这在大多数情况下已经足够了。

【讨论】:

    【解决方案2】:

    C# 和 JavaScript 正则表达式之间的一些显着差异。

    1. IE 6 和 IE 7 不支持 Lookahead。
    2. JavaScript 支持的元字符列表非常少。
    3. 命名组也不适用于 JavaScript。

    很少有有用的链接。 1. Are Java and C# regular expressions compatible? - 检查第一个答案。

    1. http://www.regular-expressions.info/refflavors.html - 这里给出了很多不同之处。

    2. Java and .Net Regular Expressions - Java 和 .NET 正则表达式。

    3. 这篇写得很好的博客也可能会有所帮助 - http://www.codinghorror.com/blog/2004/08/java-vs-net-regex-performance.html

    我强烈推荐RegexBuddy,它了解不同编程语言的风格,并且可以很容易地看出差异,尤其是对于复杂模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-18
      • 2012-02-22
      • 2023-04-07
      • 2012-06-01
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      相关资源
      最近更新 更多