gpt4 book ai didi

javascript - 带填充的特定长度正则表达式

转载 作者:行者123 更新时间:2023-11-30 08:26:32 27 4
gpt4 key购买 nike

目标:为较大字符串中的固定长度字符串创建通用正则表达式。这个字符串有一个指定的填充字符,后面跟着一个递增的整数计数器。理想情况下,可以用某种方式说:“我希望这个组的长度为 10,并且只包含一种类型的字符,后跟另一种字符。”

我试图在可变数据中匹配它(可能是数字可能是字母可能是符号):padding-characters + numbers 加起来是指定的长度,这里是 5。

这些是允许的填充 + 数字组合。

$$$$1
$$$12
$$123
$1234

这是一个例子:

<variable-data> <padding-characters> <numbers> <variable-data>
............... .................... ddddddddd ...............
(where periods are any characters and 'd' is any digit)

Example Data:
ABC $$$$ 1 $!@

Example Regex:
ABC\$*\d+\$!@

Match:
ABC$$$$1$!@
ABC$$$12$!@
ABC$$123$!@
ABC$1234$!@
ABC12345$!@

No Match:
ABC$$123456789$!@
ABC1$2$34$!@

Regex101

我尝试过的:

ABC(?=.{5})\$*\d+\$!@

这是行不通的,因为 \d+ 它仍然匹配到下一个数字。我尝试的另一件事是

ABC(?=[\$\d]{5}[^\$\d])(\$*\d+)\$!@

它的目的是在遇到非数字或非 $ 后停止查找,但这没有帮助,因为字符串的下一部分可能以 $ 或数字开头。

解决这个问题的最简单的正则表达式:

(\$\$\$\$\d|\$\$\$\d\d|\$\$\d\d\d|\$\d\d\d\d|\d\d\d\d\d)

但我正在尝试使其更加通用,并且可以有可变数量的填充 E.G.

$$$$$$$$$1
$$$$$$$$12
...

最佳答案

您可以提前检查您在接下来的 5 个字符范围内没有填充字符和数字的倒序序列,然后要求并捕获仅是数字和填充字符的 5 个字符:

ABC(?!.{0,3}\d\$)([\$\d]{5})\$!@

如果您至少需要一位数字,则:

ABC(?!.{0,3}\d\$)([\$\d]{4}\d)\$!@

关于javascript - 带填充的特定长度正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44705780/

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