我正在努力寻找满足此规则的正则表达式:
单词可以包含任何英文字母字符、撇号和单个连字符,但不接受双连字符。
所以这些都很好:
o'clock
brother-in-law
但这不是:
stack--overflow
这是我到目前为止所得到的:
^[a-zA-Z\']*\-?$
如果连字符位于字符串的末尾,但显然不在我需要的字符串中的任何位置,它将起作用。
提前致谢, 卢克
最佳答案
你可以试试这个,
^(?!.*--)[A-Za-z'-]+$
但是这允许''
,如果您不喜欢这个,那么使用下面的。
^(?!.*(?:--|''))[A-Za-z'-]+$
关于regex - 匹配单词中任意位置的零个或一个特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240379/