正则表达式:匹配所有出现的模式

时间:2014-09-16 09:09:37

标签: regex

有没有办法检查字符串是否匹配pttern的所有出现? 因为它是有效的,所有必须匹配。

我的规则是:

E followed by any 4 digits followed by 49

因此,如果找到E,则必须匹配该模式,否则无效。

我的字符串:

tel: +E12345498912345678, +498912345678, +E123449D1238912345678, tel: +E1234498912345678

这应该失败,因为第一个元素无效但是因为模式在其他地方匹配而传递。 其他3个元素都是有效的。 如何使其与E模式存在的所有出现相匹配?

除此之外,我还需要确保每个元素都在前面。 所以我想我可以先检查E,4,数字49,然后检查+

2 个答案:

答案 0 :(得分:1)

您可以这样做:

^(\+E\d{4}49.*?(,|$)\s*)+$

这证实了:

+E123449D123891234, +E123449D123891234, +E123449D123891234, +E123449D123891234

但不是:

+E12345498912345678, +498912345678, +E123449D1238912345678, +E1234498912345678

您可以在这里查看demo

答案 1 :(得分:0)

使用模式:

^(\+E\d{4}49\d*($|,\s))+$

验证整个字符串由+Exxxx49xxxx...组成,由逗号空间对分隔。

相关问题