团体,
这是我的第一篇文章。我喜欢使用Notepad ++进行cnc程序g代码编辑。有时,程序会包含文本,单词之间没有空格。括号之间包含注释。有时,行中包含注释,但大多数时候不包含注释:
G90G10L2P1X-38.046Y-11.361Z-36.991(G54 B=0)
G90G10L2P1X5.68Y5.69
G54G00G90X0.0Y-5.0T53
G43H55Z6.0M8
S300M03
此正则表达式将在所有单词之间添加一个空格,但会跳过以括号结尾的行:
搜索:(.)([A-Z])(?!.*\))
代替:\1 \2\3
到目前为止,一切都很好。我想要的是在所有单词之间添加空格,仅排除注释,而不是跳过包含上述注释的整行。
任何想法或帮助将不胜感激!我一直在玩这个游戏,并且搜索了很多都没有成功。
**编辑了我的文章,以显示更复杂的示例4/8/15:
(FILE NAME XY9032.010)
(SUB PR.321.322.323.327.328.329.325.324)
(** NONSENSE COMMENT TEXT 324 TO SHOW A DIFF POSSIBLE COMB AB 2/25/15 **)
N1(STORE TOP BOSS G55.X)
N2(STORE BOT. BOSS G55.X)
N3(STORE BOT. BOSS G55.Y)
G00G17G40G49G80G90
G91G28X0Y0Z0.M05
G90G0B0
N4G90G10L2P5X-38.046Y-11.361Z-37.021(G58 B0 BOTTOM BORES)
N5G90G10L2P6X-23.130Y-11.361Z-44.027(G59 B180 BOTTOM BORE)
G90G10L2P1X#568Y#569
G54G00G90X0.0Y-5.0T53
G43H55Z6.0M8
S300M03
Z.6
N6G01Z.015F50.
G01Y-7.0F9.0
G02J7.0F18.0
G00Z6.0M09
G91G28X0Y0Z0M05
M1
这个小的正则表达式将找到括号之间的所有文本实例:
(\(.+\))
例如,搜索:
(\(.+\))
代替:
\1****
将在文本文件中每个括号后面加上星号。
我只是想不出像本文其他地方所描述的那样,从更广泛的搜索中排除相同的regex表达式。
这不起作用-仍在括号内添加空格。下划线=空格:
Search: (?!\(.+\))([a-z]-?\d+(?:\.\d+)?)
Replace: $1_
很难确定您真正认为的“单词”,但是使用您的示例和注释,我整理了我认为您想要的东西。无论哪种方式,这都不是您真正的问题。问题不包括评论,这可以有效地做到:
搜索: (\(.*?\))|([a-z](?=[-#.\d])([-#]?\d*(\.\d*)?))
替换:$1$2_
[下划线表示空格]
交替的第一部分(\(.*?\))
捕获任何注释,将它们吸引下来,以便它们不会与交替的第二部分匹配
注意:您最终会在每行的末尾都有一个空格,但这是在Notepad ++菜单上的简单修饰。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句