所以我有以下要求:
到目前为止,要解决此问题,我得到了以下2个正则表达式:
^[a-zA-Z][a-zA-Z ]*$
这是要解决点1,2,3
(?<=[a-zA-Z])[.\-'](?=[a-zA-Z])
这是解决问题4,5
测试用例可以是像这样的单词:
但是我无法将它们合并。我已经尝试过,但没有得到预期的结果。有什么想法吗?
答案 0 :(得分:1)
您可以使用
^[a-zA-Z]+(?:[-.'][a-zA-Z]+)*$
请参见regex demo
详细信息
^
-字符串的开头[a-zA-Z]+
-1个以上ASCII字母(?:[-.'][a-zA-Z]+)*
-0次或多次出现
[-.']
-连字符,点或单引号[a-zA-Z]+
-1个以上ASCII字母$
-字符串结尾