gpt4 book ai didi

javascript - 如何修改此主题标签正则表达式以检查第二个字符是 a-z 还是 A-Z?

转载 作者:行者123 更新时间:2023-11-30 08:18:06 25 4
gpt4 key购买 nike

我正在构建一个正则表达式,我发现它非常适合我的用例。目的是检查我认为有效的主题标签(我知道 SO 上有大量主题标签正则表达式帖子,但这个问题是特定的)。

这是我正在使用的正则表达式

/(^|\B)#(?![0-9_]+\b)([a-zA-Z0-9_]{1,20})(\b|\r)/g

我遇到的唯一问题是我不知道如何检查第二个字符是否是 a-z(第一个字符是主题标签)。我只希望主题标签后的第一个字符是 a-z 或 A-Z。没有数字或非字母数字。

非常感谢任何帮助,我是正则表达式的新手。

最佳答案

正如我在评论中提到的,您可以将 [a-zA-Z0-9_]{1,20} 替换为 [a-zA-Z][a-zA- Z0-9_]{0,19} 这样第一个字符保证是字母,然后是 0 到 19 个单词字符(字母数字或下划线)。

但是,您的模式中还有其他不必要的部分。看来您只需要这样的东西:

/(?:^|\B)#[a-zA-Z][a-zA-Z0-9_]{0,19}\b/g

Demo .

(?:^|\B) 的分割:

(?:         # Start of a non-capturing group (don't use a capturing group unless needed).
^ # Beginning of the string/line.
| # Alternation (OR).
\B # The opposite of `\b`. In other words, it makes sure that
# the `#` is not preceded by a word character.
) # End of the non-capturing group.

注意:您也可以将 [a-zA-Z0-9_] 替换为 \w .


引用资料:

关于javascript - 如何修改此主题标签正则表达式以检查第二个字符是 a-z 还是 A-Z?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58508207/

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