尝试匹配逗号分隔的值列表。 我想检查逗号','是否至少出现一次,字符串包含某个前缀
即 tel_local:123456,tel_national:123456
有效但是: tel_local:123456不是没有逗号
目前正在使用
^(tel_local:)|(tel_national:),+$
但匹配tel_local:123456
答案 0 :(得分:0)
试试:
^(\w+: \d+)(?:, (\w+: \d+))*$
答案 1 :(得分:0)
要完成 ,请使用:
^tel_(?:local|national):(?=.*?,)
首先,你的主要问题是交替。想想你是否有条件(A=B OR A=C) AND Z=5
。括号是必要的,以便评估顺序保持正确,与表达式中的替换((?:local|national)
)相同。
然后,由于你没有在tel_local
或tel_national
(一个人会假设一个空格和数字)之后没有指定 必须来的地方 需要一个逗号,我用了一个先行断言。 (?=.*?,)
将向前看0+个字符并检查,
。如果未找到逗号,则断言将失败,您的匹配将结束。
答案 2 :(得分:0)
答案 3 :(得分:0)
您需要在正则表达式中包含kleene plus(“+”),以声明某个术语应至少具有一次或多次
因此,如果要指定要匹配的字符串,则应至少包含一个逗号,例如“,+”应该执行