首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为带有数字括号的"Name(2)“单词创建正则表达式

如何为带有数字括号的"Name(2)“单词创建正则表达式
EN

Stack Overflow用户
提问于 2019-09-14 09:09:26
回答 1查看 52关注 0票数 0

我需要为此创建一个正则表达式

示例

数学(5)、英语(6)、体育(5)

EN

回答 1

Stack Overflow用户

发布于 2019-09-14 09:20:10

我猜也许,

代码语言:javascript
复制
(?<=,|^)([^(,]*)\((\d*)\)(?=,|$)

可能与你的想法很接近。

测试

代码语言:javascript
复制
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class re{

    public static void main(String[] args){

        final String regex = "(?<=,|^)([^(,]*)\\((\\d*)\\)(?=,|$)";
        final String string = "math(5),English(6),P.E(5)";

        final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
        final Matcher matcher = pattern.matcher(string);

        while (matcher.find()) {
            System.out.println("Full match: " + matcher.group(0));
            for (int i = 1; i <= matcher.groupCount(); i++) {
                System.out.println("Group " + i + ": " + matcher.group(i));
            }
        }

    }
}

输出

代码语言:javascript
复制
Full match: math(5)
Group 1: math
Group 2: 5
Full match: English(6)
Group 1: English
Group 2: 6
Full match: P.E(5)
Group 1: P.E
Group 2: 5

如果您希望简化/修改/探索该表达式,可以在regex101.com的右上角面板中对其进行解释。如果您愿意,您还可以在this link中观看它如何与一些样本输入进行匹配。

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

https://stackoverflow.com/questions/57931742

复制
相关文章

相似问题

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