我的正则表达式匹配一个我不希望它匹配的字符串的问题。我似乎无法找到表达式的正确语法。这是一个例子:
ABC098765432109,~~Z 10Y-123~This is a test^ABC-DE-_F
m/^.\*?,\d\*[\~]{2}\w\s\d\*\w-\d\*~.\*?\^.\*?-.\*?-.\*?_\w$/
我认为,\d*
部分会删除逗号后面没有数字的字符串。
有关让此方法发挥作用的任何建议吗?
答案 0 :(得分:3)
*
表示“零或更多”,因此它也不会匹配任何数字。
使用\d+
或\d\d*
匹配至少一位数
答案 1 :(得分:1)
"*"
表示“零或更多”。您可能需要"+"
,这意味着“一个或多个”。所以,
m/^.*?,\d+[\~]{2}\w\s\d*\w-\d*~.*?\^.*?-.*?-.*?_\w$/
不符合
",~~Z 10Y-123~This is a test^ABC-DE-_F"