让我们假设在一个文本文件中有很多行,每个行包含多个以“;”开头的名称。除姓氏(不以其结尾)之外的定界符。 我们可以使用以下正则表达式:
^(\w+;)+$ // Not good
以前的正则表达式将不起作用,因为它会强制使用姓氏,因此整行都以“;”结尾也
答案 0 :(得分:2)
您可以在其后添加匹配的单个\w+
。如果不需要捕获组,则可以使其不捕获。
这样,您将重复匹配的单词字符,后跟;
,并以单词字符结束匹配。
^(?:\w+;)+\w+$
说明
^
字符串的开头(?:
非捕获组
\w+;
匹配1个以上的字符字符,后跟;
)+
关闭非捕获组并重复1次以上\w+
匹配1个以上的字符字符$
字符串结尾如果单个单词也应匹配,则可以使用*
而不是+
重复0+组
^(?:\w+;)*\w+$