[英]Microsoft regular expression pattern failed to match
我试图将我的正则表达式与选项一起使用:忽略大小写、多行和忽略空格。 但它无法匹配。 这是正则表达式:
" \s+(?(U|US|USD)\s*\$\s([a-z0-9$,.'_-]+)(\s[a-z0-9$,.'_-]+)+)\s+(\-\s(Savings|Chequing|\w+)\s(\d{5})\-(\d{7})\s*){0,1} (Savings|Chequing|\w+)\s(?\d{5}\-(\d{7}))\s+(Available Balance[:]\s[$](?[0-9.,]{3,20})\sUSD\s [$](?[0-9,.]{3,20})) "
这是我要匹配的字符串示例:
"Close Quick Menu Button U$ smith Hi interest2 Savings 04237-4500385 Available Balance: $0.00 USD $0.00 USD Open r"
我想我犯的错误是(?<availBal>[0-9.,]{3,20})\\s
因为表达式匹配使用表达式的前一部分
我一直在尝试不同的模式,但无济于事。
非常感谢您的帮助。
我注意到的事情是您的正则表达式中间有Available Balance
。
您需要将其更改为Available\\sBalance
。 当它说它忽略空格时,这意味着正则表达式中的空格而不是您匹配的字符串。
这个正则表达式有效。 我将(?
更改为(?:
并添加了一个+
。
\s+(?:(U|US|USD)\s*\$\s([a-z0-9$,.'_-]+)(\s[a-z0-9$,.'_-]+)+)\s+(\-\s(Savings|Chequing|\w+)\s(\d{5})\-(\d{7})\s*){0,1}(Savings|Chequing|\w+)\s(?:\d{5}\-(\d{7}))\s+(Available\sBalance[:]\s[$](?:[0-9.,]{3,20})\sUSD\s+[$](?:[0-9,.]{3,20}))
但是你忽略了空格,那么为什么不写清楚呢? 我还更改了您拥有的一些不必要的东西:
\s+(?:(U|US|USD) \s* \$ \s ([a-z0-9$,.'_-]+)
(\s[a-z0-9$,.'_-]+)+)
\s+(-\s(Savings|Chequing|\w+)
\s (\d{5})-(\d{7})\s*)?
(Savings|Chequing|\w+)
\s (?:\d{5}-(\d{7}))
\s+(Available \s Balance: \s \$ (?:[0-9.,]{3,20}) \s USD
\s+\$(?:[0-9,.]{3,20}))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.