【问题标题】:form java regex to php regex将 java 正则表达式转换为 php 正则表达式
【发布时间】:2013-04-15 21:48:14
【问题描述】:

我在 Java 中有一个正则表达式:[^a-zA-Z0-9.-_]

这个从javaphp的正则表达式如何形成?

【问题讨论】:

  • 在大多数情况下,您可以在 许多 语言的正则表达式实现中使用 same 语法。在这种情况下(尽管很简单),PHP 和 Java 的语法应该是相同的。问:你试过吗?

标签: java php regex


【解决方案1】:

在 php (PCRE) 中,这个正则表达式看起来像

[^a-zA-Z0-9.-_]

是的,一模一样

【讨论】:

  • 你能说出显而易见的问题吗? :)
【解决方案2】:

这个特定的正则表达式是一样的。

但是您可以使用以下方法缩短:

[^\w.-]

别忘了 - 字符必须放在字符类的最后一个位置

【讨论】:

  • @M8R-1jmw5r:默认情况下,速记字符类(\w\d\s)仅包含 ASCII 字符,与语言环境无关。见pcre.org
【解决方案3】:

完全相同您可能需要在其周围放置分隔符,例如括号:

([^a-zA-Z0-9._-])

看到将减号移到末尾的细微差别。那是因为[.-_] 匹配./0...9:;<=>?@A...Z[\]^_。我猜你不是在寻找这个的否定,因为你已经覆盖了 0-9 和 A-Z。

【讨论】:

  • 您应该帮自己一个忙,并使用其他字符(例如~#)作为分隔符,以免您(和其他人)混淆() 是否是分隔符或捕获组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多