无法让我的正则表达式匹配

时间:2012-06-24 14:01:46

标签: .net regex

在我看来,这应该匹配得很好。有人可以向我指出我做错了吗?

正则表达式:

^.* ATM DEPOSIT (?'Month'\d{2})-(?'Day'\d{2}) #(?'Reference'[0-9A-Za-z]) .*$

字符串:

BKOFAMERICA ATM DEPOSIT 07-05 #006475 CUSTOMER 2323 BANK OF AMERICA, SAVANNAH, GA

2 个答案:

答案 0 :(得分:4)

您错过了+

你的表达。

^.* ATM DEPOSIT (?'Month'\d{2})-(?'Day'\d{2}) #(?'Reference'[0-9A-Za-z]) .*$

正确表达。

^.* ATM DEPOSIT (?'Month'\d{2})-(?'Day'\d{2}) #(?'Reference'[0-9A-Za-z]+) .*$

除此之外,由于您在日期之前和参考之后对任何事情都不感兴趣,因此无需匹配。使用:

ATM DEPOSIT (?'Month'\d{2})-(?'Day'\d{2}) #(?'Reference'[0-9A-Za-z]+)

答案 1 :(得分:3)

你忘记了子匹配结束时的+。看起来应该是这样的

(?'Reference'[0-9A-Za-z]+)