首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将单词与连字符和/或撇号匹配的正则表达式

将单词与连字符和/或撇号匹配的正则表达式
EN

Stack Overflow用户
提问于 2015-08-10 02:45:35
回答 7查看 71.1K关注 0票数 30

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

代码语言:javascript
运行
复制
(\w+([-'])(\w+)?[']?(\w+))

这在大多数情况下都有效,但是如果有撇号,然后是连字符,比如“qu ce”,它就不匹配了。我可以附加更多的选项,虽然也许还有更有效的方法?

一些我想要匹配的例子:玛丽的,高中的,‘它,钱伯斯’,曲特西。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2015-08-10 03:09:03

使用此模式

代码语言:javascript
运行
复制
(?=\S*['-])([a-zA-Z'-]+)

演示

代码语言:javascript
运行
复制
(?=                 # 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)
票数 41
EN

Stack Overflow用户

发布于 2015-08-10 03:26:26

[\w'-]+可以匹配几乎所有带有(或没有)连字符和撇号的单词,但在这些字符相邻的情况下也是如此。(?:\w|['-]\w)+应该匹配字符不能相邻的情况。

如果您需要确保单词包含连字符和/或撇号,并且这些字符不相邻,可以试试\w*(?:['-](?!['-])\w*)+。但这也与“独处”相匹配。

票数 23
EN

Stack Overflow用户

发布于 2015-08-10 02:54:14

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31910955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档