Board logo

标题: [问题求助] 改进PowerShell匹配代码 [打印本页]

作者: 娜美    时间: 2022-4-18 10:40     标题: 改进PowerShell匹配代码

本帖最后由 娜美 于 2022-4-20 22:04 编辑

a.txt   是UFT-16编码


需准确匹配企业名称  和标识码      而标识码之后的字段可以忽略   需要改动的正是这一段匹配代码'.*简名:\s*(.*)\s\S*:.*','$1'

现在需要新的优化是仅企业名称相同, 标识码也相同的输出来  名称及标识码不相同的不要


作者: qixiaobin0715    时间: 2022-4-18 11:18

  1. .*(科尔达.*:.*?)\(.*
复制代码

作者: 娜美    时间: 2022-4-18 12:32

本帖最后由 娜美 于 2022-4-18 13:45 编辑

Sorry    主题已重新编辑   谢谢
作者: idwma    时间: 2022-4-18 21:47

  1. '.*简名:\s*(\S+\s*[\S:]+).*','$1'
复制代码

作者: 娜美    时间: 2022-4-18 22:46

回复 4# idwma



可以可以了  




初次接触注意到powershell语言,   大哥哥可否给详细分段的讲解一下这段powershell正则匹配呢?  谢谢:handshake
  1. '.*简名:\s*(\S+\s*[\S:]+).*','$1'
复制代码


作者: 娜美    时间: 2022-4-19 10:11

本帖最后由 娜美 于 2022-4-19 10:14 编辑

回复 4# idwma


   idwma哥哥   
有一个小小现像  如果企业名称是带下面这样的
北京科尔达
北京科尔达北京
科尔达上海
科尔达




它会输出这样的   似乎多了一行  北京科尔达     似乎需要完整的匹配名称
北京科尔达
科尔达
作者: idwma    时间: 2022-4-19 17:56

https://docs.microsoft.com/zh-cn ... age-quick-reference
只会用不太会讲,可以多看几篇正则入门的文章一搜一大堆,然后再多看看帮助
  1. sc D:\out.txt $(foreach($i in $a){if(($f -eq 0) -and $i -match "简名:\s*$b"){$i;$f=1}elseif(($f -eq 1) -and $i -match '已执行'){$f=0;$i,''}elseif($f -eq 1){$i}})
复制代码

作者: 娜美    时间: 2022-4-19 19:41

回复 7# idwma


   ThanksThanks




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2