0

我的输入是

String input = "I am doing <span id='icms'>test</span>on <span id='icms'>regex</span> exp."

现在我的输出就像

"regex exp"

但是我的输出需要这样

I am doing test on regex exp

所以需要关于正则表达式和匹配器的帮助。

4

2 回答 2

3

你需要两个替代品。首先替换<span[^>]*id=['"]icms['"][^>]*>([^<]*)</span>' $1 '(不带引号;它们只是告诉您必须预先添加一个空格),然后用一个空格替换' {2,}'(再次不带引号)。

快速 PowerShell 测试:

PS> "I am doing <span id='icms'>test</span>on <span id='icms'>regex</span> exp." -replace '<span[^>]*id=[''"]icms[''"][^>]*>([^<]*)</span>',' $1 ' -replace ' {2,}',' '
I am doing test on regex exp.
于 2012-07-20T13:49:05.933 回答
1

以下将捕获不是标签的每个部分,这似乎是您想要的:

(?:(.*)<.*?>(.*))*

编辑:

然后对于这个特定的标签:

(?:(.*?)<span id='icms'>([^<]*?)</span>(.*))*

于 2012-07-20T13:49:13.870 回答