我需要为3个规则创建一个正则表达式。1.字符串可以以字母或_开头。字母或_前不允许有数字。
_
^[A-Za-z0-9_]*$
^[^0-9]*$
_Sss12
_Aaa12 - correct Aaa - correct aa aa - fail 12aa - fail
mlmc2os51#
就我所知,你想匹配一个 identifier,
*必须从 * 字母 * A..Z、a..z或_开始*可以包含 * 字母 * A..Z、a..z或_,或 * 数字 * 0..9
A..Z
a..z
0..9
如果这是你的案子,
^[A-Za-z_][A-Za-z0-9_]*$
哪里
^ - anchor, start of the string [A-Za-z_] - Letter A..Z or a..z or symbol _ [A-Za-z0-9_]* - Zero or more letters, digits or _ $ - anchor, end of the string
如果字母可以是 * 任何Unicode* 字母,不需要拉丁字母,你可以使用\p{L}(对于任何Unicode数字,不需要0..9\d可以使用,但我怀疑你是否想要波斯语或印度语数字的模式):
\p{L}
\d
^[\p{L}_][\p{L}0-9_]*$
1条答案
按热度按时间mlmc2os51#
就我所知,你想匹配一个 identifier,
*必须从 * 字母 *
A..Z
、a..z
或_
开始*可以包含 * 字母 *
A..Z
、a..z
或_
,或 * 数字 *0..9
如果这是你的案子,
哪里
如果字母可以是 * 任何Unicode* 字母,不需要拉丁字母,你可以使用
\p{L}
(对于任何Unicode数字,不需要0..9
\d
可以使用,但我怀疑你是否想要波斯语或印度语数字的模式):