忽略正则表达式中的撇号[重复]

Posted

技术标签:

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

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

(.*) won't connect.*

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

【问题讨论】:

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

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

在此处查看demo

【讨论】:

【参考方案2】:

你的模式:

(.*) won't connect.*

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

foo won't connect won't connect

见demonstration。

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

改进的模式:

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

【讨论】:

以上是关于忽略正则表达式中的撇号[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java正则表达式转义撇号[重复]

忽略包含中的撇号

如何忽略正则表达式中的括号[重复]

正则表达式中无法识别撇号 (')

Java正则表达式忽略/注释掉正则表达式的一部分[重复]

使用正则表达式剥离字符失败,使用带有变音符号,撇号,重音符号等的文字字符