Java 正则表达式只捕获特定标记内的数字

Java 正则表达式只捕获特定标记内的数字,java,regex,Java,Regex,我有以下文字 <msgText>H3ll0World</msgText><msgText>HelloWorld</msgText><otherTagWithNumbers>456</otherTagWithNumbers> 我举了一个这种情况的例子。您试图用正则表达式解析XML 但这可能适用于您正在处理的一些非常有限的XML子集: (\d+)(?=\w*<\/msgText>) (\d+)(=\w*) .您

我有以下文字

<msgText>H3ll0World</msgText><msgText>HelloWorld</msgText><otherTagWithNumbers>456</otherTagWithNumbers>

我举了一个这种情况的例子。

您试图用正则表达式解析XML

但这可能适用于您正在处理的一些非常有限的XML子集:

(\d+)(?=\w*<\/msgText>)
(\d+)(=\w*)

.

您希望使用积极的前瞻来查看,但不使用:

\d+(?=(?:(?!<\/?\w+>).)*<\/msgText>)

试试这个方法,只需将xml作为xml打开并查看其内容。您应该咨询。你试过什么的密码在哪里?谢谢兄弟。我不想解析XML,我只想替换特定标记中的数字。再次感谢@JoabeLucena是的,我理解,这只是一个强制性的免责声明,XML不是规则的,就像其他任何“regex+(X/HT)ML”问题一样;)很高兴你能解决你的问题,尽管理论上有障碍xD
\d+(?=(?:(?!<\/?\w+>).)*<\/msgText>)
\d+(?=[^<]*<\/msgText>)