找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 15903|回复: 7

[问题求助] 改进PowerShell匹配代码

[复制链接]
发表于 2022-4-18 10:40:24 | 显示全部楼层 |阅读模式
本帖最后由 娜美 于 2022-4-20 22:04 编辑

a.txt   是UFT-16编码


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

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

发表于 2022-4-18 11:18:24 | 显示全部楼层
  1. .*(科尔达.*:.*?)\(.*
复制代码
 楼主| 发表于 2022-4-18 12:32:04 | 显示全部楼层
本帖最后由 娜美 于 2022-4-18 13:45 编辑

Sorry    主题已重新编辑   谢谢
发表于 2022-4-18 21:47:07 | 显示全部楼层
  1. '.*简名:\s*(\S+\s*[\S:]+).*','$1'
复制代码

评分

参与人数 1技术 +1 收起 理由
娜美 + 1 嗯嗯

查看全部评分

 楼主| 发表于 2022-4-18 22:46:49 | 显示全部楼层
回复 4# idwma



可以可以了  




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

 楼主| 发表于 2022-4-19 10:11:13 | 显示全部楼层
本帖最后由 娜美 于 2022-4-19 10:14 编辑

回复 4# idwma


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




它会输出这样的   似乎多了一行  北京科尔达     似乎需要完整的匹配名称
北京科尔达
科尔达
发表于 2022-4-19 17:56:24 | 显示全部楼层
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}})
复制代码

评分

参与人数 1技术 +1 收起 理由
娜美 + 1 谢谢

查看全部评分

 楼主| 发表于 2022-4-19 19:41:14 | 显示全部楼层
回复 7# idwma


   ThanksThanks
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:11 , Processed in 0.025406 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表