为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式:在字符串中查找模式

正则表达式:在字符串中查找模式

HUH函数 2022-10-26 16:33:17
有人可以解释如何在java中使用正则表达式。我的字符串很少 3 :- N, ‘V—g'ufi “ ‘L Total: 13-70 "0- 1‘ i,并且 r _._A_ ,,1 Total: $13.70 i- T«. 我需要提取 Total: 后面加上 sum: Ex of expected output Total: 13-70, Total: $13.70。我尝试使用以下代码...但据我了解,它不会捕获符号,例如$.-Pattern p = Pattern.compile("Total: \\d+");            Matcher m = p.matcher(result);            while (m.find()) {                System.out.println(m.group());            }
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

您可以使用

Total:\s*\$?\d+(?:[-.]\d+)?

请参阅正则表达式演示

细节

  • Total:- 文字子串

  • \s*- 0+ 个空格

  • \$?- 一个可选$字符

  • \d+- 1+ 位数

  • (?:[-.]\d+)?- 一个可选的非捕获组,匹配 1 次或 0 次出现:

    • [-.]- 要么-.

    • \d+- 1 个或多个数字。

//img1.sycdn.imooc.com//6358f24500013d8e06570099.jpg

在 Java 中:


Pattern p = Pattern.compile("Total:\\s*\\$?\\d+(?:[-.]\\d+)?");

如果您需要提取值,请围绕您需要提取的模式使用捕获组(例如,此处\$?\d+(?:[-.]\d+)?)并访问组值,例如


Pattern p = Pattern.compile("Total:\\s*(\\$?\\d+(?:[-.]\\d+)?)");

Matcher m = p.matcher(result);

while (m.find()) {

     System.out.println(m.group(1));

}


查看完整回答
反对 回复 2022-10-26
  • 1 回答
  • 0 关注
  • 56 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信