我正在寻找一个正则表达式来匹配带有连字符和/或撇号的单词。到目前为止,我有:
(\w+([-'])(\w+)?[']?(\w+))
这在大多数情况下都有效,但如果有一个撇号然后是一个连字符,例如“qu'est-ce”,它就不会匹配。我可以附加更多可选值,但也许还有另一种更有效的方法?
我尝试匹配的一些示例:Mary's、High-school、'tis、Chambers'、Qu'est-ce。
最佳答案
使用这个模式
(?=\S*['-])([a-zA-Z'-]+)
(?= # Look-Ahead
\S # <not a whitespace character>
* # (zero or more)(greedy)
['-] # Character in ['-] Character Class
) # End of Look-Ahead
( # Capturing Group (1)
[a-zA-Z'-] # Character in [a-zA-Z'-] Character Class
+ # (one or more)(greedy)
) # End of Capturing Group (1)
关于javascript - 用连字符和/或撇号匹配单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31910955/