[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. $str = '[abc]d[ef]g123';
  2. $reg = '(?<=\[[^[\]]*\]|^)[^[\]]+';
  3. [regex]::Replace($str, $reg, {param($m), $m.Groups[0].Value.ToUpper()});
复制代码
结果:[abc]D[ef]G123

如果需要考虑括弧嵌套的问题:
  1. $str = '[abc[w8w]]de[fg]xy123';
  2. $reg = '\[(?:[^[\]]*|\[(?<open>)|\](?<-open>))*(?(open)(?!))\]|[^[\]]+';
  3. [regex]::Replace($str, $reg, {param($m), $s = $m.Groups[0].Value; if($s.IndexOf('[')+1){$s}else{$s.ToUpper()}});
复制代码
结果:[abc[w8w]]DE[fg]XY123

TOP

返回列表