以下是这一行:
I love you and George loves IOANA but also Mihai is my enemy.
我想匹配 IOANA 之前的两个单词,以及 IOANA 之后的两个单词
输出应该是:
I love you and IOANA Mihai is my enemy.
我相信我的正则表达式必须稍微升级一下才能起作用:
搜索:(^.*)(?s)(\w+{2}IOANA\w+{2})(.*)
替换为:\1\2
答案1
- Ctrl+H
- 找什么:
(?:\S+ ){2}(IOANA)(?: \S+){2}
- 用。。。来代替:
$1
- 查看 相符
- 查看 环绕
- 查看 正则表达式
- 取消选中
. matches newline
- Replace all
解释:
(?: # non capture group
\S+ # 1 or more non space character
# a space
){2} # end group, must appear twice
(IOANA) # group 1
(?: # non capture group
# a space
\S+ # 1 or more non space character
){2} # end group, must appear twice
我猜,在这里,你的意思是单词是由非空格字符组成的。
- 如果对于您来说,单词仅包含字母和数字,请使用
[a-zA-Z0-9]+
而不是\S+
。 - 如果对于您来说,单词仅包含字母和一些标点符号,如
'
,则使用[a-zA-Z']+
而不是\S+
。
截图(之前):
截图(之后):