【问题标题】:Ignoring Apostrophe in Regex [duplicate]忽略正则表达式中的撇号[重复]
【发布时间】:2018-01-21 13:19:31
【问题描述】:

我有一个简单的正则表达式,它在字符串中查找单词“不会连接”。

(.*) won't connect.*

但我想拥有它,这样它就可以忽略撇号,以防用户输入“不会连接”。

【问题讨论】:

  • 你想匹配除撇号之外的整个字符串吗?
  • 我想要它,这样用户输入撇号就没有关系了,就像他们拼写为 wont 而不是 won't。
  • 在撇号后面加一个问号表示它是可选的。

标签: c# regex


【解决方案1】:
(.*)won'?t connect.*

应该足够了,匹配“'”0或1次

在此处查看demo

【讨论】:

    【解决方案2】:

    你的模式:

    (.*) won't connect.*
    

    * 量词默认为 贪婪。这意味着您的正则表达式会出错:

    foo won't connect won't connect
    

    demonstration

    如果你在量词后面添加一个问号,它将是惰性的,这意味着它只会匹配模式成功所需的数量。见解释here

    改进的模式:

    (.*?) won'?t connect.*
    

    【讨论】:

      猜你喜欢
      • 2019-02-08
      • 1970-01-01
      • 2020-01-16
      • 2015-07-26
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多