gpt4 book ai didi

regex - 如果字符串恰好包含 N 个字符,则匹配正则表达式

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

我想要一个正则表达式来匹配一个字符串,只有当它包含一个出现预定义次数的字符时。

例如:
我想匹配所有包含字符“_”的字符串 3 次;

所以
“a_b_c_d”会通过
“a_b”会失败
“a_b_c_d_e”会失败

有人知道一个简单的正则表达式可以满足这一点吗?

谢谢

最佳答案

对于您的示例,您可以执行以下操作:

\b[a-z]*(_[a-z]*){3}[a-z]*\b

(带有忽略大小写标志)。

你可以玩它 here

它说“匹配 0 个或多个字母,然后是 '_[a-z]*' 正好 3 次,然后是 0 个或多个字母”。 \b意思是“词边界”,即“匹配整个词”。

由于我使用了 '*',如果单词中恰好有三个“_”,则无论它出现在单词的开头还是结尾,这都会匹配 - 您可以修改它。

另外,我假设您希望将字符串中的所有单词与其中恰好三个“_”相匹配。

这意味着字符串“a_b a_b_c_d”会说“a_b_c_d”通过(但“a_b”失败)。

如果您的意思是在整个字符串中全局只希望出现三个“_”,请使用:
^[^_]*(_[^_]*){3}[^_]*$

这将正则表达式 anchor 定在字符串的开头并转到结尾,确保其中只有三个“_”出现。

关于regex - 如果字符串恰好包含 N 个字符,则匹配正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9304713/

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