【问题标题】:is the regular expression "|" supposed to match everything or only the empty string?是正则表达式“|”应该匹配所有内容还是只匹配空字符串?
【发布时间】:2013-10-10 04:21:39
【问题描述】:

在 .NET 中,它匹配所有内容。在 Java 中只有空字符串。

这就是他们的正则表达式引擎的实现方式。

但是如何强制 .NET 正则表达式引擎匹配 |仅针对空字符串或 Java 正则表达式引擎以将其与所有内容匹配?

【问题讨论】:

  • 你能用示例代码解释一下问题吗?
  • 我认为管道字符 |(几乎在所有正则表达式中)是用于指定替代模式的元字符
  • 我认为您将很难告诉正则表达式引擎以不同的方式运行(但是您可以将其设置为解析为 EMCAscript),编写代码来显式检查空字符串可能会更容易在使用正则表达式之前。

标签: c# java regex pipe


【解决方案1】:

| 是 Java 中正则表达式的 OR:

X|Y --> XY

【讨论】:

    【解决方案2】:

    在 Java 中,正则表达式中的字符 |operator that matches the expressions on either side of the pipe

    根据您所说的匹配所有内容的含义,在 Java 中您可以使用 .*,它匹配任何字符零次或多次。

    【讨论】:

      【解决方案3】:

      | 代表常规的OR 操作。

      更多信息:

      来源http://www.regular-expressions.info/alternation.html

      如果要搜索文字文本 catdog,请用竖线或竖线符号分隔两个选项 | : cat|dog

      如果您需要更多选项,只需展开列表:cat|dog|mouse|fish

      希望对您有所帮助! :)

      【讨论】:

        猜你喜欢
        • 2020-03-16
        • 2023-03-13
        • 2011-06-07
        • 2012-10-06
        • 2011-04-13
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多