Notepad ++查找和替换语法,需要帮助

时间:2012-02-20 18:19:54

标签: regex notepad++ replace

我是Notepad ++的新手,需要一些查找和替换功能方面的帮助。我有一个CNC机器的代码,如下所示:

G1 X0.625 Z1.242 F500.0
G1 Z0.099 A358.475 F500.0
G1 X0.542 Z1.247 F500.0
G1 Z0.100 A356.949 F500.0
G1 X0.458 Z1.254 F500.0
G1 Z0.102 A355.424 F500.0
G1 X0.375 Z1.263 F500.0

我需要找到包含X的每一行,并将F500.0的值替换为F5.0。我应该使用什么语法?提前谢谢。

4 个答案:

答案 0 :(得分:2)

我认为这会有效,但这取决于数据的可变性:

(G1[ ]+X.+[ ]+[A-Z0-9.]+[ ]+)F500\.0

并替换为

\1F5.0

这收集F500.0左边的所有内容(。是得到一个文字句点。我输入一个文字G1,然后是空格,然后是X后跟任何东西,然后是空格,然后是单词字符和数字以及句点重复,最后是F500.0。

我用\ 1替换它,这是在括号中收集的东西,然后是F5.0。

参考:NotePad++ Regular Expression Syntax

更新:添加了NotePad ++正则表达式语法

的链接

答案 1 :(得分:1)

搜索:(X.*)F500\.0

并替换为:\1F5.0

答案 2 :(得分:0)

在第一个字段中按ctrl+h放置您想要找到的内容,在第二个放置您要替换它的内容。

答案 3 :(得分:-2)

Notepad ++使用basic regular expression syntax。因此,您将尝试将其用作Perl兼容正则表达式(PCRE)时遇到很多问题。

执行此操作的最佳方法是使用实​​际为这些类型的任务设计的工具。 Sed,或perl one liner。例如:

sed -i -r 's/(X.*)F500\.0/\1F5.0/g' yourFile

-i开关用于就地编辑,-r用于扩展正则表达式语法。当然,在windows上设置sed很烦人。

所以,你可能会有一个小python或perl脚本更好的运气。另一个选择是记事本++宏。

修改

正如M42所指出的,记事本++实际上支持分组kind of