gpt4 book ai didi

字符串的正则表达式(可选地除以一个空格)

转载 作者:行者123 更新时间:2023-12-02 09:18:21 24 4
gpt4 key购买 nike

我是 Angular/javascript 新手,需要一个正则表达式,它应该允许一个字符串(可选)两个带有空格的字符串。总共最多 10 个字符。

有效字符串:“asdf”“asdf asdf”

我尝试过类似的操作: ^[[a-z]{1,10} ?[a-z]{2,9}]{1,10}?$ 但无法使其正常工作

最佳答案

量词仅修改它们旁边的原子(子模式)的行为。此外,由于您将所有子模式序列放入字符类中,因此您的正则表达式被“破坏”。

您可以使用

/^(?!.{11})[a-z]+(?: [a-z]+)?$/

请参阅regex demo

如果该字符可以是任何非空白字符,请将 [a-z] 替换为 \S

说明:

  • ^ - 字符串开头
  • (?!.{11}) - 如果从字符串开头找到任何 11 个字符,则不返回任何匹配项(此否定前瞻的工作方式与 (?=. {1,10}$) - 任何 1 到 10 个字符,直到字符串末尾)
  • [a-z]+ - 1 个以上小写字母(替换为您真正允许的字母)
  • (?: [a-z]+)? - 出现 1 或 0 次:
    • - 空格(可以替换为 \s)
    • [a-z]+ - 1 个以上小写字母(替换为您真正允许的字母)
  • $ - 字符串结尾。

关于字符串的正则表达式(可选地除以一个空格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43848992/

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