gpt4 book ai didi

java - 合并正则表达式中的两个条件

转载 作者:行者123 更新时间:2023-12-04 09:32:33 24 4
gpt4 key购买 nike

我有一个可以包含五个单词的自由文本字段
每个单词允许的模式是 [\w+=,.@-]+
我想添加从 1 到 64 个字符的字符长度
为此,我创建了 2 个正则表达式并使用 'AND'条件,但我只想创建一个正则表达式
我该怎么做

a) "[\\w+=,.@-]\\s{0,1}){1,5}"
b) "\\b\\w{1,64}\\b"
输入字符串
可接受 - Test1 Test2 Test3 Test4 Test5可接受 - Test1 Test2 Test3 Test4 Test5 Not Acceptable - Test1 Test2 Test3 Test4 Test55555555555555555555555555555555555555555555555555555555555555555我试过这个 - (^([\w\.\+\@\,]{1,64}){1}$)|(^([\w\.\+\@\,]{1,64}\s+){1,5}\s{0,1}$)但是上面的最后一个字的末尾需要一个空格,如果有人可以帮助解决上面的问题,以便它在末尾不需要空格,那么这将解决我的问题

最佳答案

如果文本字段可以包含 5 个单词,并且总共的最大字符数为 1 到 64,则可以使用 anchor 定到字符串开头的正向先行。
然后您可以匹配 1+ 个单词字符并重复 1-4 次匹配空格和 1+ 个单词字符以防止必须以空格结束字符串。

^(?=[\w+=,.@ -]{1,64}$)(?:\w+(?: \w+){0,4})$
说明
  • ^字符串开头
  • (?=正向前瞻,断言直接向右的是
  • [\w+=,.@ -]{1,64}$匹配任何列出的 1-64 次断言字符串结尾

  • )关闭前瞻
  • (?:非捕获组
  • \w+匹配 1+ 个单词字符
  • (?: \w+){0,4}重复 0-4 次匹配一个空格和 1+ 个单词字符

  • )关闭非捕获组
  • $断言字符串结束

  • Regex demo
    在带有双转义反斜杠的 Java 中:
    String regex = "^(?=[\\w+=,.@ -]{1,64}$)(?:\\w+(?: \\w+){0,4})$";

    关于java - 合并正则表达式中的两个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62766720/

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