gpt4 book ai didi

正则表达式匹配所有大写和下划线

转载 作者:行者123 更新时间:2023-12-03 14:11:46 24 4
gpt4 key购买 nike

我需要一个正则表达式来测试一个字符串是否符合以下规则:

  • 至少包含一个词(可能只是一个字符)
  • 所有字符都应该是大写的。
  • 在每个单词对(例如 _)之间使用一个且仅一个下划线( HELLO_WOLRD )

  • 测试值(有效和无效):
    const validConstants = [
    'A',
    'HELLO',
    'HELLO_WORLD',
    ];
    const invalidConstants = [
    '', // No empty string
    'Hello', // All be Capitals
    'Add1', // No numbers
    'HelloWorld', // No camel cases
    'HELLO_WORLD_', // Underscores should only be used between words
    '_HELLO_WORLD', // Underscores should only be used between words
    'HELLO__WORLD', // Too much Underscores between words
    ];

    我试过 ^[A-Z]+(?:_[A-Z]+)+$ ,但它在 A 中失败和 HELLO .

    最佳答案

    您需要一个 *最后的量词:

    ^[A-Z]+(?:_[A-Z]+)*$
    ^
    (?:_[A-Z]+)*将匹配零个或多个 _ 的序列和 1 个或多个大写 ASCII 字母。

    regex demo .

    详情 :
  • ^ - 字符串 anchor 的开始
  • [A-Z]+ - 1+ 个大写 ASCII 字母(这里的 + 要求字符串中至少有一个字母)
  • (?:_[A-Z]+)* - 匹配零个或多个序列的非捕获组:
  • _ - 下划线
  • [A-Z]+ - 1+ 个大写 ASCII 字母(这里的 + 表示字符串不能以 _ 结尾)
  • $ - 弦 anchor 结束
  • 关于正则表达式匹配所有大写和下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43224835/

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