如何在 Notepad ++ 中的每一行重复带有占位符的现有单词?
How to repeat existing word with placeholder to each row in Notepad ++?
当前行是
cp filename1*.csv
cp filename2*.csv
cp filename3*.csv
....
cp filenamen*.csv
我想用额外的词替换这些行,最终所有行应该是这样的
cp filename1*.csv filename1.csv
cp filename2*.csv filename2.csv
cp filename3*.csv filename3.csv
....
cp filenamen*.csv filenamen.csv
所以好像要替换
{cp\s}{filename\d+}{.csv}
和
{0}{1}{2}{1}
我能够在 Notepad++ 中将你的东西从
cp filename1*.csv
cp filename2*.csv
cp filename3*.csv
至
cp filename1*.csv filename1.csv
cp filename2*.csv filename2.csv
cp filename3*.csv filename3.csv
使用 cp(\s+)(\w+)(\d+)\*\.csv
的查找正则表达式并替换 cp*.csv .csv
的正则表达式。
我不确定星星是否应该在同一位置,因为从你的 post 中不清楚它是否有其他含义,所以我只是假设它是一个字面字符并转义了它与 \*
。如果它应该是其他的东西,比如更多的数字,你可以用你的知识简单地修正答案,因为你似乎已经熟悉正则表达式了。此外,如果 *
应该是多位数字,那么 \d+
将处理它。
我还捕获了空格,因为您在您的示例中这样做了,并且我通过捕获和输出来跟踪它,以尽量使其尽可能接近您想要的。
如果你想使用捕获组,语法应该是 ()
而不是 {}
您可以使用 2 个捕获组,并在替换中使用 [=14=]
来引用整个匹配并添加组 1 和组 2 以获得文件名和 csv 的捕获值。
而不是使用也匹配换行符的 \s
,您可以匹配 1+ 次水平空白字符 \h+
查找
\bcp\h+(filename\d+)\*(\.csv)
替换为:
[=11=]
当前行是
cp filename1*.csv
cp filename2*.csv
cp filename3*.csv
....
cp filenamen*.csv
我想用额外的词替换这些行,最终所有行应该是这样的
cp filename1*.csv filename1.csv
cp filename2*.csv filename2.csv
cp filename3*.csv filename3.csv
....
cp filenamen*.csv filenamen.csv
所以好像要替换
{cp\s}{filename\d+}{.csv}
和
{0}{1}{2}{1}
我能够在 Notepad++ 中将你的东西从
cp filename1*.csv
cp filename2*.csv
cp filename3*.csv
至
cp filename1*.csv filename1.csv
cp filename2*.csv filename2.csv
cp filename3*.csv filename3.csv
使用 cp(\s+)(\w+)(\d+)\*\.csv
的查找正则表达式并替换 cp*.csv .csv
的正则表达式。
我不确定星星是否应该在同一位置,因为从你的 post 中不清楚它是否有其他含义,所以我只是假设它是一个字面字符并转义了它与 \*
。如果它应该是其他的东西,比如更多的数字,你可以用你的知识简单地修正答案,因为你似乎已经熟悉正则表达式了。此外,如果 *
应该是多位数字,那么 \d+
将处理它。
我还捕获了空格,因为您在您的示例中这样做了,并且我通过捕获和输出来跟踪它,以尽量使其尽可能接近您想要的。
如果你想使用捕获组,语法应该是 ()
而不是 {}
您可以使用 2 个捕获组,并在替换中使用 [=14=]
来引用整个匹配并添加组 1 和组 2 以获得文件名和 csv 的捕获值。
而不是使用也匹配换行符的 \s
,您可以匹配 1+ 次水平空白字符 \h+
查找
\bcp\h+(filename\d+)\*(\.csv)
替换为:
[=11=]