我正在寻找一种方法来查找文本的一部分并使用C#更改文本后面的数字
我已经在.batch程序中使它工作了,但是我想使其在Visual Studio中更合适。
这是一种文本文件,在其中我需要能够在X或/和Y之后更改数字:(更改意味着将特定数字添加到已经存在的数字中)
N1 G17 G90
N3 G54
N5 S24000
N7 M03
N9 G00 X2675.766 Y427.409 Z730
N11 G00 X2675.766 Y427.409
N13 G00 X2675.766 Y427.409
N15 G00 X2675.766 Y427.409 Z505
N17 F4000
N19 G01 X2675.766 Y427.409 Z447.5
N21 F4000
N23 G01 X2565.966 Y475.823 Z447.5
N25 F4000
N27 G02 X1852.832 Y871.38 Z447.5 I4373.42 J4575.032
N29 G03 X705.065 Y871.38 Z447.5 I1278.948 J28.138
N31 G02 X-8.069 Y475.823 Z447.5 I-1815.523 J4575.032
N33 M05
N35 M30
这是批处理文件目前的工作方式。
@echo off
setlocal EnableDelayedExpansion
echo[
echo[
set /p file="file name? = "
echo[
echo[
set /p Xdir="X + :"
echo[
echo[
set /p Ydir="Y + :"
(for /F "tokens=1-4*" %%a in (%file%.nc) do (
if "%%d" equ "" (
echo %%a %%b %%c
) else (
for /F "tokens=1,2 delims=X." %%C in ("%%c") do (
set /A X=%%C+%Xdir%
if "%%D" neq "" set "X=!X!.%%D"
)
for /F "tokens=1,2 delims=Y." %%D in ("%%d") do (
set /A Y=%%D+%Ydir%
if "%%E" neq "" set "Y=!Y!.%%E"
)
echo %%a %%b X!X! Y!Y! %%e
)
)) > %file%_ar.nc
echo je Your new file " %file%_ar.nc " is created.
pause
在我的Visual Studio中,我得到了:X和/或Y的2个文本字段。名为Xdir_btn,Ydir_btn的1个btn称为Generate。名为Generate_btn 1 richtextBox。名为RichTextBox(这是我打开文本文件时进入的位置)。在线上有enoguh教程,用于查找和替换指定的文本,但不打算在指定的文本后面进行更改。
但不会更改指定文本后面的内容。
试试这个正则表达式(?<=X)[0-9\.]+(?= )
,它将帮助您找到X后面的数字。
N9 G00 X 2675.766 Y427.409 Z730
您可以尝试regex101.com。它将清楚地解释代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句