【发布时间】:2016-09-19 04:30:06
【问题描述】:
我已经浪费了足够的时间来构造一个匹配的正则表达式。
- 以 [a-z]+ 开头
- 以 [a-z]+ 结尾
- 在两者之间可以有 ' 或 - 或两者,只要用户喜欢 ['-]*
- ' 不应该是连续的,同样 - 不应该是连续的。
提前感谢您的帮助。
【问题讨论】:
-
这可能更容易用普通的字符串函数或单独的正则表达式来做......你可能可以构建一个表达式来做你想做的事,但单独的语句会更具可读性和可维护性,并且在大多数用例中不会表现得更差。
-
@4castle 这不行。
-
我刚刚在 Regex101 中尝试过。它没有用。
-
@4castle 此输入失败
abc'-'-'abc... OP 没有说明撇号和连字符是否平衡。 -
@TimBiegeleisen 我明白了。固定:
^[a-z]+(?:(?:'-)*'?|(?:-')*-?)[a-z]+$
标签: c# regex negative-lookahead