首页 > 解决方案 > 正则表达式有什么问题?

问题描述

我不明白,为什么这个正则表达式不像我预期的那样工作:

正则表达式:^<prefix>(.*?)(<optTag.*?>)?(.*?)<postfix>$

测试:<prefix>some chars<optTag value>some chars<postfix>

测试结果:

第 1 组:空

第 2 组:空

第 3 组:some chars<optTag value>some chars

我希望第 2 组 =<optTag value>

标签: javaregex

解决方案


您可以在正则表达式中添加单词边界“\b”以获得第 2 组中所需的值。

这个 ReGeX 对我有用,

^<prefix>(.*?)(\b<optTag.*>\b)(.*?)<postfix>$

你可以在这里阅读更多。


推荐阅读