有没有办法检查字符串是否匹配pttern的所有出现? 因为它是有效的,所有必须匹配。
我的规则是:
E followed by any 4 digits followed by 49
因此,如果找到E,则必须匹配该模式,否则无效。
我的字符串:
tel: +E12345498912345678, +498912345678, +E123449D1238912345678, tel: +E1234498912345678
这应该失败,因为第一个元素无效但是因为模式在其他地方匹配而传递。 其他3个元素都是有效的。 如何使其与E模式存在的所有出现相匹配?
除此之外,我还需要确保每个元素都在前面。 所以我想我可以先检查E,4,数字49,然后检查+
答案 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...
组成,由逗号空间对分隔。