我有这个字符串
This is a <143>sample</143> regex <143>pa<665>t</665>tern</143> selection <143>by</143> tags in <128>c#</128> and my <132>name</132> is <175>Vincent</175>
我应该只是通过标签来匹配。我用它来突出显示文本。
预期输出:
<143>sample</143>
<143>pa<665>t</665>tern</143>
<665>t</665>
<143>by</143>
<128>c#</128>
<132>name</132>
<175>Vincent</175>
我试过这个正则表达式模式:
<(143|128|132|175)>.*</(143|128|132|175)>
但它会将所有结果打印为匹配项,即整个字符串。
请帮忙。
跟进问题
我可以单独获取标签内的文本,而不是获取整行匹配项吗?就像我只是得到 sample 而不是 <143>sample<`/143>
请您参考如下方法:
这两个更改应该可以帮助您:
- 使用non-greedy匹配 (
.*?). - 使用 backreference (
\1) 以便您只匹配相同的开始和结束标记。
试试这个:
<(143|128|132|175)>.*?</\1>
关于“啊是的我忘了..它是嵌套标签”:那么使用正则表达式可能是不明智的。嵌套标签不是常规语言。
