6

我有这段文字:

£££££Ciao a tutti§§§§§,§§§§§2009§§§§§,§§§§§8§§§§§
£££££Il mio nome è Geltry§§§§§,§§§§§2009§§§§§,§§§§§6§§§§§
Bla bla bla§§§§§,§§§§§2010§§§§§,§§§§§7§§§§§
£££££Le amiche della sposa§§§§§,§§§§§2011§§§§§,§§§§§3§§§§§

使用 TextCrawler 我发现所有没有 £££££ 作为前缀的行,所以:

^((?!£££££).)*$

我应该写什么来代替?

Reg Ex: ^((?!£££££).)*$
Replacement: ?  <-- what write here?

具有:

£££££Ciao a tutti§§§§§,§§§§§2009§§§§§,§§§§§8§§§§§
£££££Il mio nome è Geltry§§§§§,§§§§§2009§§§§§,§§§§§6§§§§§
£££££Bla bla bla§§§§§,§§§§§2010§§§§§,§§§§§7§§§§§
£££££Le amiche della sposa§§§§§,§§§§§2011§§§§§,§§§§§3§§§§§
4

4 回答 4

16

搜索:

^(?!£££££)(.+)$

代替:

£££££$1

首先,您的正则表达式不正确。^((?!£££££).)*$匹配不包含£££££ 任何位置的行。它还仅捕获该行的最后一个字符,您希望它捕获整行。

我的正则表达式只匹配不 £££££. 它捕获第一组中的整行,并且(根据手册),$1替换字符串中的 重新插入捕获的文本。

我还将 更改*+因此它不会匹配空行并将它们替换为£££££.

于 2012-08-11T10:54:42.570 回答
3

您不需要捕获任何内容,只需在该行不以 开头时插入£££££

搜索:^(?!£££££)

代替:£££££

如果一次不匹配一行,则还需要确保它是多行搜索。

于 2012-08-11T19:47:47.560 回答
1

您可以使用()匹配子表达式:

(子表达式)
捕获匹配的子表达式并为其分配一个从零开始的序数。

(?子表达式)
将匹配的子表达式捕获到命名组中。

所以你的正则表达式可以是:

(^(?:(?!£££££).)*$)
//or
(?<line>^(?:(?!£££££).)*$)

并更换:

$数
替换与组号匹配的子字符串。

${名称}
替换与命名组名匹配的子字符串。

您的替换可能是这样的:

£££££$1
//or
£££££${line}
于 2012-08-11T09:50:48.343 回答
-1

使用这个正则表达式:^(((?!£££££).)*)$

写这个作为替换:£££££^(\1)$

\1将是源匹配,在你的情况下它是整行。

于 2012-08-11T09:53:37.453 回答