固定正则表达式的位置

时间:2018-03-01 23:10:13

标签: regex powershell

我有以下字符串,并且布局已修复,因此我使用以下方法检索信息

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

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

1 个答案:

答案 0 :(得分: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}) - 一个积极的外观,要求在字符串开头的当前位置之前必须有5个字符
  • (.{4}) - 第2组:任意四个字符
  • $ - 字符串结尾(或\z将匹配字符串的结尾)。