如何得到:
blablabla x/11/1048.1 blablabla blablabla
x/11/i blablabla
blablablax/11/a
blablabla x/11/b.2 blablabla blablabla blablabla
成为:
x/11/1048.1.full.y
x/11/i.full.y
x/11/a.full.y
x/11/b.2.full.y
答案1
以下是一种方法:
- Ctrl+H
- 找什么:
^.*?(x/[^/]+/\S+).*$
- 用。。。来代替:
$1.full.y
- Replace all
解释:
^ : begining of line
.*? : 0 or more any character, not greedy
( : start group 1
x : literally x
/ : literally /
[^/]+ : 1 or more any character that is not /
/ : literally /
\S+ : 1 or more character that is not a space
) : end group 1
.* : 0 or more any character
$ : end of line
- 请勿检查
. matches newline
替代品:
$1.full.y : content of group 1 followed by .full.y
给定示例的结果:
x/11/1048.1.full.y
x/11/i.full.y
x/11/a.full.y
x/11/b.2.full.y
答案2
答案3
所以你有了
blablabla x/11/1048.1 blablabla blablabla
x/11/i blablabla
blablablax/11/a
blablabla x/11/b.2 blablabla blablabla blablabla
文本 blahbla 是什么并不重要。
寻找.*(x/[^/]*/[^/\s\b]*[\s\b]).*
替换为 \1
发现的圆括号中的部分是您想要保留的 x/..../... 模式。
给出
x/11/1048.1
x/11/i
x/11/a
x/11/b.2
我发现其中一些后面有空格,这可能是我的正则表达式的一个缺陷,但没关系,我们可以在行尾找到空格并将其删除。
查找:(\r?\n)
<-- 即查找空格字符后跟行分隔符或行终止符 \r\n 或 \n,然后仅用行分隔符或行终止符替换。我们将从中删除空格。
用。。。来代替: \1
x/11/1048.1
x/11/i
x/11/a
x/11/b.2
这会找到以 x/ 开头的每一行并“捕获它”,并将其替换为自身,后跟 .full.y
查找:(^x/.*$)
替换为\1.full.y
x/11/1048.1.full.y
x/11/i.full.y
x/11/a.full.y
x/11/b.2.full.y