首页 > 解决方案 > php regex pregmatch 删除字符之间的零

问题描述

我有一个字符串,我想实现删除字符-s和第一个数字之间的所有零。

1v-s001v => 1v-s1v
2v-s030r => 2v-s30r
3v-s021v => 3v-s21v

我正在尝试:

\w+-s0*(\d)

但它与主题字符串不匹配。

标签: regex

解决方案


您可以使用

(-s)0+(\d)

并替换为$1$2. 如果您的正则表达式风格不支持,您可以替换\d为。[0-9]\d

查看正则表达式演示

细节

  • (-s)- 捕获组 1(稍后使用$1替换模式中的占位符/替换反向引用):-s子字符串
  • 0+- 一个或多个0字符
  • (\d)- 捕获组 2(后来用$2替换模式中的占位符/替换反向引用来指代):任何一位

推荐阅读