首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >筛选带有圆点且以方括号结尾的单词

筛选带有圆点且以方括号结尾的单词
EN

Stack Overflow用户
提问于 2016-12-25 14:49:38
回答 2查看 74关注 0票数 4

为了简单起见,我们以下面的例子为例:

代码语言:javascript
运行
复制
iphone Foo.bar.StartTimestamp:[2012-11-12 TO 2016-02-15] and apple Bar.Foo.BarTimestamp:[2012-11-12 TO 2016-02-15] apple

从上面的文本中,我想使用正则表达式过滤Foo.bar.StartTimestamp:[2012-11-12 TO 2016-02-15]Bar.Foo.BarTimestamp:[2012-11-12 TO 2016-02-15]。可以有任何组合来代替Bar.Foo.BarTimestamp:[2012-11-12 TO 2016-02-15],但它将采用相同的格式。

我试过这个(?<!\\S)[][^[]]*正则表达式,但它只过滤方括号括起来的文本。

我应该如何构造正则表达式以获得所需的结果?

以下是指向regex101.com的链接:https://www.regex101.com/r/QLP4jB/1

EN

回答 2

Stack Overflow用户

发布于 2016-12-25 15:09:11

试试这个正则表达式:

代码语言:javascript
运行
复制
\w+(\.\w+)*:\[[^]]*\]
票数 2
EN

Stack Overflow用户

发布于 2016-12-25 15:11:13

您可以使用此正则表达式,而无需任何查找:

代码语言:javascript
运行
复制
(?:\w+\.)+\w+:\[[^]]+\]

RegEx Demo

Java代码

代码语言:javascript
运行
复制
final String regex = "(?:\\w+\\.)+\\w+:\\[[^]]+\\]";
final String string = "iphone Foo.bar.StartTimestamp:[2012-11-12 TO 2016-02-15] and apple Bar.Foo.BarTimestamp:[2012-11-12 TO 2016-02-15] apple";

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

while (matcher.find()) {
    System.out.println("Matched: " + matcher.group(0));
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41319218

复制
相关文章

相似问题

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