我正在尝试匹配以冒号分隔的电子邮件列表。为了使事情简单起见,我将电子邮件表达式排除在外,并使其与任意数量的字符进行匹配,并且它们之间没有空格。

以下将被匹配...

somevalues  ;somevalues;       somevalues;

要么
somevalues; somevalues             ;somevalues

结局;应该没有必要。

以下将不匹配。
somevalues ;   some values    somevalues;

要么
some values; somevalues some values

到目前为止,我已经知道了,但是没有用。由于我在冒号之间留有空格,因此表达式不知道空格在单词中还是冒号之间。
([a-zA-Z]*\s*\;?\s*)*

符合以下条件(不应该)
somevalue ; somevalues  some values;

我如何使表达式仅在有空格的情况下才允许使用空格?在左边还是右边?

最佳答案

以下PCRE表达式应该起作用。
\w+\s*(?:(?:;(?:\s*\w+\s*)?)+)?
但是,如果将电子邮件地址验证正则表达式置于此位置,则需要
\w+替换(?:<your email validation regex>)
可能正是您想要的,在http://regexr.com?2rnce上测试过

编辑:但是,取决于您使用的语言?需要将;转义为\;

08-03 21:15