javascript - 用连字符和/或撇号匹配单词的正则表达式

标签 javascript regex

我正在寻找一个正则表达式来匹配带有连字符和/或撇号的单词。到目前为止,我有:

(\w+([-'])(\w+)?[']?(\w+))

这在大多数情况下都有效,但如果有一个撇号然后是一个连字符,例如“qu'est-ce”,它就不会匹配。我可以附加更多可选值,但也许还有另一种更有效的方法?

我尝试匹配的一些示例:Mary's、High-school、'tis、Chambers'、Qu'est-ce。

最佳答案

使用这个模式

(?=\S*['-])([a-zA-Z'-]+)

Demo

(?=                 # 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/

相关文章:

c - 表示多行的正则表达式

java - Java 正则表达式中 `(.*)*` 、 `(.*)+` 、 `(.+)*` 的奇怪问题

javascript - 如何使用 jQuery 在两个类之间切换?

javascript - 使用 Python 从也包含非 JSON 声明的 .js 文件中提取 JSON?

javascript - 在显示之前过滤 div,即在 ajax 滚动之前

javascript - 如何使用 RegExp 删除标签并保留元素中的文本?

javascript - 使用 Youtube 的 iframe API 嵌入视频获取 "402 Payment Required"

php - 如何使用原型(prototype)js更改href属性?

javascript - 如何使用正则表达式从字符串中获取浮点值?

python - 找到字符串的精确匹配