固定正则表达式的位置

问题描述 投票:1回答:1

我有以下字符串,并且布局是固定的,所以我使用以下方法来检索信息

$A = "00035king"
$Regex = '(.{5})(.{4})'
$Replace = '$2,$1'
$A = $A -replace $Regex, $Replace

结果是king,00035。但是,我想删除第二部分的前导零,将其从00035更改为35。无论如何我能做到或有什么建议吗?谢谢。

regex powershell
1个回答
3
投票

你可以在字符串的开头匹配0到4个零,然后是1到5个字符,然后检查从字符串开始消耗的字符是否有5个字符。

使用

'^0{0,4}(.{1,5})(?<=^.{5})(.{4})$'

regex demo

细节

  • ^ - 字符串的开头
  • 0{0,4} - 0到4个零
  • (.{1,5}) - 第1组:1到5个字符
  • (?<=^.{5}) - 一个积极的lookbehind要求在从字符串开始的当前位置之前必须有5个字符
  • (.{4}) - 第2组:任何四个字符
  • $ - 字符串的结尾(或\z将匹配字符串的结尾)。
© www.soinside.com 2019 - 2024. All rights reserved.