我有一个包含" Dear user BAL= 1,234/ "的字符串。
我想使用正则表达式从字符串中提取1,234。它可以是1,231,23455,213500

final Pattern p=Pattern.compile("((BAL)=*(\\s{1}\\w+))");
final Matcherm m = p.matcher(text);
if(m.find())
    return m.group(3);
else
 return "";


返回3
我应该做什么正则表达式?我是新来的正则表达式。

最佳答案

您在正则表达式中搜索单词字符\w+,但应使用\d+搜索数字。

此外,还有逗号,因此您也需要将其匹配。

我会用

/.BAL=\s([\d,]+(?=/)./

作为模式,仅获取结果组中的数字。

说明:
.*匹配任何内容
BAL=匹配字符串“ BAL =”
\s匹配空白
(开始匹配组
[\d,]+一次或多次匹配每个数字或逗号
(?=/)仅在后跟斜杠时匹配前者
)结束匹配组
.*匹配任何盗窃

这是untestet,但它应该像这样工作:

final Pattern p=Pattern.compile(".*BAL=\\s([\\d,]+(?=/)).*");
final Matcherm m = p.matcher(text);
if(m.find())
    return m.group(1);
else
 return "";


根据online tester,以上模式与文本匹配:

BAL= 1,234/

10-07 19:42