java - 如果多个字符可以包含数字和下划线(最多 128 个),则正则表达式的第一个字符必须是字母

标签 java regex

如长标题所示,如果测试字符串只有字符,则它只能是 alpha。但是,如果测试字符串有多个字符(最多 128 个字符),则它仍然必须以字母字符开头,但随后允许数字和下划线。

这是我目前使用的正则表达式。 ^([a-zA-Z])|([a-zA-Z][A-Za-z0-9\_]{2,128})$

失败的地方是第二个字符是下划线。

这是链接:https://regex101.com/r/xzmfRs/1

最佳答案

您可以使用此正则表达式来解决您的问题:

^[a-zA-Z]\w{0,127}$

允许一个字母或最多允许 128 个字符的单词字符。

\w[a-zA-Z0-9_]

的简写

Updated RegEx Demo

关于java - 如果多个字符可以包含数字和下划线(最多 128 个),则正则表达式的第一个字符必须是字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39793785/

相关文章:

java - 将文本字段数据附加到 java 中的现有 JSON 文件

java - 如何使用模式匹配器仅获取与 Java 中的正则表达式匹配的第一行?

java - 保留对 Actor 系统的引用

java - 为什么原始类型引用可以引用泛型实例?

Java RegEx 后视构造

Java正则表达式到groovy

java - 在 Java 中解析目录符号链接(symbolic link)

regex - 如何将 grep 与文件中的正则表达式和模式一起使用?

python - 如何从特定字母开始并在遇到数字时结束?

regex - 使用 sed 一次排序 2 行