首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于提取字符串的java正则表达式

用于提取字符串的java正则表达式
EN

Stack Overflow用户
提问于 2018-06-06 03:47:45
回答 2查看 56关注 0票数 -2

我有一些标题如下。我只需要用正则表达式提取'Bug‘后面的数字。

代码语言:javascript
复制
Bug 1234 - description
Bug1234 - description
Bug 1234  description
BUG 1234 - description
Bug 1234: description
Bugxxxx: description

数字后面的字符可以是我所期望的任何非字符。我注意到在我们的bug标题中,我看到了三个非字符,':', '-', ' '

有没有一种方法可以用java正则表达式来提取数字?

最后一个用例'Bugxxxx‘应为返回的空字符串,因为'xxxxx’不是数字。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-06 03:58:22

您可以使用这个带有Pattern.CASE_INSENSITIVE标志的正则表达式Bug\\s?(\\d*)来提取数字。它将在第一组中。例如

代码语言:javascript
复制
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));
}
票数 2
EN

Stack Overflow用户

发布于 2018-06-06 04:11:57

您可以按照下面的步骤操作:

代码语言:javascript
复制
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));
        }
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50707860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档