本帖最后由 5i365 于 2022-4-16 18:34 编辑
我想把A.txt中符合条件的"XXXX" 即最下面的红字部分, 前面添加ABC, 我写了下面的代码,
gc A.txt |
foreach {
$_ -replace '(^".+");.+', 'ABC $1'
}
代码只能处理单行的情况, 另外正则, 也不完善, 会把下面的蓝字也给改了, 不能改它, 因为不满足条件!
正则需要匹配的两种情况:
1.如果一行中:
"XXX"后面有; 且有Y 有mou, 则在"XXX"前添加ABC后跟一个空格, 示例:
之前:
"Close Session"; 'Y; mou 0.5 0.5
之后:
ABC "Close Session"
2.如果多行中:
以#wub开头, 第二行是"xxxx", 且第三行有Y 且第四行有mou 则删除第三行第四行, 直接在第二行前添加ABC
示例:
之前:
#wub bob44 m ;;vb_运行
"Run VBS"
'Y
mou 0.5 0.5
之后:
#wub bob44 m ;;vb_运行
ABC "Run VBS"
对正则理解还不太深入, 期待路过高手指引, 提前感谢!
----------------------------------------------------------------------------------------------------------------------------------------------
A.txt 文本内容
"Move Cur "; 我不应该被处理
#wub bob281 m ;;tei_移动
"Move Cursor "; 'Y; mou 0.5 0.7
#wub bob282 m ;;te_关闭
"Close Se"; 'Y; mou 0.3 0.5
#wub bob44 m ;;vb_运行
"Run VBS"
'Y
mou 0.5 0.5
#wub bob43 m ;;jss_代码
"Run Jaa"
'Y
mou 0.1 0.4
#wub bob51 m ;;wai_等待
"Wai for"; 'Y; mou 0.5 0.5
#wub bob43 m ;;jso_运行
"Run script"
'Y
mou 0.5 0.8
#wub bob7 m ;;jo_行业
"Run ppt"
"Run "
'Y
mou 0.5 0.8 |