regex - 匹配单词中任意位置的零个或一个特定字符

标签 regex

我正在努力寻找满足此规则的正则表达式:

单词可以包含任何英文字母字符、撇号和单个连字符,但不接受双连字符。

所以这些都很好:

o'clock
brother-in-law

但这不是:

stack--overflow

这是我到目前为止所得到的:

^[a-zA-Z\']*\-?$

如果连字符位于字符串的末尾,但显然不在我需要的字符串中的任何位置,它将起作用。

提前致谢, 卢克

最佳答案

你可以试试这个,

^(?!.*--)[A-Za-z'-]+$

但是这允许'',如果您不喜欢这个,那么使用下面的。

^(?!.*(?:--|''))[A-Za-z'-]+$

关于regex - 匹配单词中任意位置的零个或一个特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240379/

相关文章:

python - 通过正则表达式在 C++ 中搜索基本注释

java - 正则表达式替换 Java 文件中的所有字符串文字

python - 具有lookbehind的正则表达式无法使用re.match工作

正则表达式查找 $ 符号之间的文本 block

java - Intellij 想法 : How do I create custom Inspection rule with regexp

javascript - 替换最后 7 个字符的字符串?

c# - 高级正则表达式 : Smart auto detect and replace URLs with anchor tags

html - 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

objective-c - URL 验证(Objective-C)

ios - iOS 中的正则表达式将文本字段限制为仅字母和单个撇号