我有一些标题如下。我只需要用正则表达式提取'Bug‘后面的数字。
Bug 1234 - description
Bug1234 - description
Bug 1234 description
BUG 1234 - description
Bug 1234: description
Bugxxxx: description
数字后面的字符可以是我所期望的任何非字符。我注意到在我们的bug标题中,我看到了三个非字符,':', '-', ' '
。
有没有一种方法可以用java正则表达式来提取数字?
最后一个用例'Bugxxxx‘应为返回的空字符串,因为'xxxxx’不是数字。
谢谢。
发布于 2018-06-06 03:58:22
您可以使用这个带有Pattern.CASE_INSENSITIVE标志的正则表达式Bug\\s?(\\d*)
来提取数字。它将在第一组中。例如
String foo = "Bug 1234 - description";
Pattern pattern = Pattern.compile("Bug\\s?(\\d*)", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(foo);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
发布于 2018-06-06 04:11:57
您可以按照下面的步骤操作:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) {
String subject = "Bug 1234 - description";
Pattern bugNumber = Pattern.compile("(?i)bug\\s*([0-9]+)");
// find the bug#
Matcher matcher = bugNumber.matcher(subject);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
}
}
https://stackoverflow.com/questions/50707860
复制相似问题