繁体   English   中英

Java Regex从给定的字符串中提取单词

[英]Java Regex to extract a word from given String

我需要从给定的字符串中提取一个单词。 在这种情况下,字符串可能以不同的方式出现。 例如:

“签名引用测试ID 69043 abcd。签名引用测试ID 1001”

“签名指的是测试ID

69043磅 签名引用测试ID 1001”

“签名是指测试

ID69043。”

同样,测试ID不一定总是小写。 如果我可以忽略它是小写还是大写,那会更好。 也可能是Test ID,TEST ID

我暂时将其写为'测试ID([0-9] +)'

我想从这些给定的字符串中提取“测试ID号”。 有时它在字符串中可以有多个“测试ID号”。 一些时间字符串包含多行,因为它出现在段落中。

您可以在此处使用以下不区分大小写的模式来使用正式的Java模式匹配器:

(?i)test\s+id\s+(\d+)

考虑以下代码片段:

String input = "The Signature refers to test id 69043 abcd. ";
input += "The Signature refers to test id 1001";
String pattern = "(?i)test\\s+id\\s+(\\d+)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);

while (m.find()) {
   System.out.println("Found value: " + m.group(1) );
}

这将正确输出两个id:

Found value: 69043
Found value: 1001

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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