使用正则表达式进行字符串验证

String validation using regular expressions

提问人:Asaw 提问时间:10/3/2023 最后编辑:Dmitry BychenkoAsaw 更新时间:10/4/2023 访问量:56

问:

我需要为 3 条规则创建一个正则表达式。

  1. 字符串可以以字母或 .字母或 之前不允许使用数字。__
  2. 可以添加到任何地方。_
  3. 不允许使用特殊字符或空格。

我创建了 2 个正则表达式(和),但不知道如何将它们组合在一起。此外,规则末尾不包含数字(如)。^[A-Za-z0-9_]*$^[^0-9]*$_Sss12

_Aaa12 - correct
Aaa    - correct
aa aa  - fail
12aa   - fail
C# 正则表达式 验证

评论

0赞 InSync 10/3/2023
听起来您正在验证标识符。尝试 ^[A-Za-z_][A-Za-z0-9_]*$
0赞 JeffC 10/3/2023
@InSync 评论不是为了回答。评论用于澄清问题。如果您有答案,请将其发布在下面的答案中。
0赞 InSync 10/3/2023
@JeffC我知道。我找到了一个很好的 VTC 目标作为骗子。
0赞 JeffC 10/3/2023
@InSync......然而,您在评论中发布了答案。
0赞 InSync 10/3/2023
可能的重复项:用于识别 C 语言变量声明的正则表达式(问题本身中的正则表达式),用于检查变量名称有效性的 Java 正则表达式,用于变量标识器的正则表达式

答:

3赞 Dmitry Bychenko 10/3/2023 #1

据我所知,您想要匹配一个标识符,该标识符

  • 必须字母开头,或者A..Za..z_
  • 可以包含字母、 或 或数字A..Za..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字母,而不是必需的拉丁字母,则可以使用(对于任何Unicode数字,可以使用不必要的字母,但我怀疑您是否希望在模式中使用波斯语或印度数字):\p{L}0..9\d

^[\p{L}_][\p{L}0-9_]*$