我正在尝试匹配以冒号分隔的电子邮件列表。为了使事情简单起见,我将电子邮件表达式排除在外,并使其与任意数量的字符进行匹配,并且它们之间没有空格。
以下将被匹配...
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上测试过
编辑:但是,取决于您使用的语言?需要将;
转义为\;