我需要一个正则表达式来检查字符串中是否每个字母前后都有一个字母。
到目前为止我得到了这个:
(([-])?[a-zA-Z ]+[a-zA-Z]+[-]+[a-zA-Z]+[a-zA-Z ]+$|[a-zA-Z ]+$)|([a-zA-Z ])
适用于以下示例:
这对这些例子不起作用:
答案 0 :(得分:1)
要确保每个下划线都被一个字母包围,您可以使用
(?<=[a-zA-Z])_(?=[a-zA-Z])
此演示适用于您的所有输入。
这使用positive lookbehind((?<=...)
)和lookahead((?=...)
)。
请考虑将Stack Overflow Regular Expressions FAQ加入书签以供将来参考。有一个关于可能感兴趣的外观的部分,以及底部的在线测试人员列表。
答案 1 :(得分:1)
这个正则表达式似乎适用于所有示例,以及其他很多示例。 检查以下内容的否定:
^(.*(([^a-zA-Z]-)|(-[^a-zA-Z])).*)$
通过大量示例检查此正则表达式: