1

我有一个 GREP 命令:

(?<=say).+.".+?"

它找到所有有说(但不包括它)、引用的单词和它之间的字符的行。

它只想对引用的单词(而不是中间的字符)进行更改,但是

(?<=say)(?<=.+.)".+?"

这不起作用。

这是我需要更改的文本示例:

我对船长说:“先生,我想回家”。

......说,“这就是方式”。

应该通过 GREP 命令将其更改为:

我对船长说:“先生,我想回家”

......说,“这就是方式”

有人可以帮助我吗?

4

1 回答 1

3

我不认为你可以有一个可变长度的后视;这在大多数 REGEX 风格中是不可能的,我敢打赌 ID 就是这种情况。您可能会做两个 Greps,一个将样式应用于 'say' 之后的所有内容,另一个将其从 say 和引号之间的文本中删除(这当然会假设两者之间没有其他渲染)。或者,您可以使用初始正则表达式插入一些字符,然后您可以搜索并用作应用斜体的基础。或者,您可以编写脚本。

这个页面讨论了lookbehind的局限性:http ://www.regular-expressions.info/lookaround.html

使用正向后视和前瞻来查找 'say' 和引号之间的内容的示例:

(?<=say).+?(?=")
于 2014-09-24T21:42:13.113 回答