我有一个GREP命令:
(?<=say).+.".+?"
它找到所有说出(但不包括它)的行,引用它们之间的单词和字符。
它只想对引用的单词(不是中间的字符)进行更改,而是
(?<=say)(?<=.+.)".+?"
这不起作用。
以下是我需要更改的文字示例:
我跟船长说过:&#34;先生,我想回家&#34;。
......说,&#34;这就是&#34;。
GREP命令应将其改为:
我跟船长说话了,先生,我想回家#34; ......说,&#34;这就是&#34; 。
有人可以帮助我吗?
答案 0 :(得分:3)
我认为你不能拥有可变长度的后视;这在大多数版本的REGEX中都是不可能的,我敢打赌这就是ID的情况。你可以做两个Greps,一个用于将样式应用于'say'之后的所有内容,另一个用于将它从say和引号之间的文本中删除(这当然假设其间没有其他渲染)。或者您可以使用初始正则表达式插入一些您可以搜索的字符,并将其用作应用斜体的基础。或者,你可以编写脚本。
此页面讨论了lookbehind的限制:http://www.regular-expressions.info/lookaround.html
使用正向lookbehind和lookahead查找“say”和引号之间的内容的示例:
(?<=say).+?(?=")