gpt4 book ai didi

regex - 当任何字符串至少包含三个字符且 + 号被最少三个字符包围时匹配的正则表达式

转载 作者:行者123 更新时间:2023-12-01 10:19:27 24 4
gpt4 key购买 nike

我想创建仅当任何字符串具有三个或更多字符时才匹配的正则表达式,并且如果字符串中有任何 + 符号,则 + 符号之前和之前必须至少需要三个字符,

我创建了一个正则表达式,它满足了我的所有要求,除了第一个 + 符号之前必须至少有三个字符但它与较少的字符匹配

这是我当前的正则表达式:(\+[a-z0-9]{3}|[a-z0-9]{0,3})$

ab+abx 这个字符串不应该匹配,但它在我的正则表达式中匹配

例子:

有效字符串:

sss
sdfsgdf
4534534
dfs34543
sdafds+3232+sfdsafd
qwe+sdf
234+567
cvb+243

无效字符串:

a
aa
a+
aa+
+aa
+a
a+a
aa+aa
aaa+a

最佳答案

你可以使用这个正则表达式,

^[^+\n]{3,}(?:\+[^+\n]{3,})*$

解释:

  • ^ - 字符串的开始
  • [^+\n]{3,} - 这确保它匹配除 + 和换行符之外的任何字符,\n 如果您尝试匹配的输入不包含任何换行符并且 {3,} 允许它匹配至少三个或更多字符

  • ,您实际上可以删除
  • (?:\+[^+\n]{3,})* - 这部分进一步允许匹配 + 字符然后进一步分隔至少三个或更多字符和整个字符零次或多次以保持 + 字符的外观可选

  • $ - 输入结束

Demo

编辑:更新解决方案,其中空格不参与计算 + 两侧的字符数,其中所需的最少字符数为三个

您可以使用此正则表达式来忽略计算文本中的空格,

^(?:[^+\n ] *){3,}(?:\+ *(?:[^+\n ] *){3,})*$

Demo

另外,如果你只处理字母数字文本,你可以使用这个更简单、更容易维护的正则表达式,

^(?:[a-z0-9] *){3,}(?:\+ *(?:[a-z0-9] *){3,})*$

Demo

关于regex - 当任何字符串至少包含三个字符且 + 号被最少三个字符包围时匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55431902/

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