正则替换不能替换字符的匹配字符

  • 本文关键字:字符 替换 不能 regex pcre
  • 更新时间 :
  • 英文 :


我试图使用正则判处以动态捕获字符串中的所有数字,例如1234-12-1234或1234-123-1234,而不知道每个字符串中会发生的字符数量部分。我能够通过以下表达式使用正面的表达来捕获这一点:[0-9]*(?= - (。但是,当我尝试将数字替换为XS时,以使最后一个破折号之前发生的每个数字被X替换为X时,Regex不会返回数字1:1的X。相反,每个部分返回两个X。我该如何让正则返回以下内容:

1234-123-1234 -> XXXX-XXX-1234
1234-12-1234 -> XXXX-XX-1234

而不是电流

1234-123-1234 -> XX-XX-1234

链接到演示

问题是,通过在数字匹配后直接放置 *,将用一个X替换一个以上的数字。然后,零数字将被单个X替换。任何数量的数字都将有效地替换为两个X。

而是使用此:

[0-9](?=。* - (

最新更新