gpt4 book ai didi

正则表达式:屏蔽除最后 5 位以外的所有数字,忽略非数字

转载 作者:行者123 更新时间:2023-12-01 16:05:01 26 4
gpt4 key购买 nike

我想匹配一个包含 17-23 位数字并穿插有空格或连字符的数字,然后用星号替换除最后五位以外的所有数字。我可以匹配以下正则表达式:

((?:(?:\d)([\s-]*)){12,18})(\d[\s-]*){5}

我的问题是我无法让正则表达式对第一部分中 [\s-] 的所有实例进行分组,而且我不知道如何用它来替换最初的 12 个-18 位带星号的数字 (*)。

最佳答案

这个怎么样:

s/\d(?=(?:[ -]*\d){5,22}(?![ -]*\d))/*/g

正前瞻确保在刚刚匹配的数字之前至少有 5 位数字,而嵌入的前瞻确保不超过 22 位。

但是,在第一个匹配的数字之前可能还有更多数字。也就是说,如果有 24 位或更多位,则此正则表达式仅对其中的最后 23 位起作用。我不知道这对您来说是否有问题。

关于正则表达式:屏蔽除最后 5 位以外的所有数字,忽略非数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com