java 正则表达式的组,Java创建正则表达式组

我的文字中包含一些我想介绍的重要信息。

重要信息标记在大括号中。 重要文本有几种不同的"标记"将其分为几组。

一个例子:

Lorem ipsum dolor sit {this is important}\GROUP1 amet, consetetur

sadipscing elitr, sed diam {also Important}\GROUP1 nonumy eirmod

tempor invidunt ut labore et dolore magna aliquyam erat, {not so

important}\GROUP2 sed diam voluptua. At vero eos et accusam et

{slightly important}\GROUP3 justo duo dolores et ea rebum. Stet clita kasd gubergren.

为了找到这些"重要文本"块,我使用了正则表达式(取" {"和" GROUP1"之间的内容):

Pattern regexGroup1 = Pattern.compile("(\\{(.*?)\\GROUP1"));

Matcher regexMatcher = regexGroup1.matcher(data);

regexMatcher.group();

查找GROUP1文本块。

Pattern regexGroup2 = Pattern.compile("(\\{(.*?)\\GROUP2"));

Matcher regexMatcher = regexGroup2.matcher(data);

regexMatcher.group();

查找GROUP2 textchunks ....等

有没有办法只制作一个正则表达式一次找到所有这些组并使用regexMatcher.group(1-3)进行访问?

像这样的东西:

regexMatcher.group(1)输出:

this is important

also Important

regexMatcher.group(2)输出:

not so important

regexMatcher.group(3)输出:

slightly important

提前输入。

您可以使用稍微不同的Pattern,分为两组。 喜欢,

Pattern regexGroup = Pattern.compile("(\\{(.*?)\\GROUP(\\d+)");

Matcher regexMatcher = regexGroup.matcher(data);

然后,您可以使用regexMatcher.group(1)和regexMatcher.group(2)访问数据(检查重要性的第二个结果)。

啊,我明白了。 但是这些块并不总是标记为" GROUP1-?"。 我以这个为例(不好)。 它应该与{} GROUP,{} PERSON,{} ANIMAL等一起使用。...它是由某种NER提取程序注释的文本。

同样的想法,只需要使用正则表达式来匹配([GROUP|PERSON|ANIMAL])

(\\{(.*?)\\}\\\\(GROUP|PERSON)(\\d+)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值