繁体   English   中英

Microsoft 正则表达式模式匹配失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM