正则表达式检查字符串中间的空格

19

我想验证这些字符是否是字母数字:

Regex aNum = Regex("[a-z][A-Z][0-9]");

我想添加选项,以便可能有一个空格,这将是一个由两个单词组成的表达式:

Regex aNum = Regex("[a-z][A-Z][0-9]["\\s]");

但是找不到正确的语法。

我会感激任何帮助。

5个回答

28

[A-Za-z0-9\s]{1,}应该适用于你。它匹配包含字母数字或空格字符且至少一字符长的任何字符串。如果您也接受下划线,可以缩短为[\w\s]{1,}

您应该添加^和$来验证整个字符串是否匹配,而不仅仅是部分字符串:

^[A-Za-z0-9\s]{1,}$^[\w\s]{1,}$


5

只需一个空格的两个单词:

Regex aNum = Regex("[a-zA-Z0-9]+[\s][a-zA-Z0-9]+");

或者任意数量的单词,其中包含任意数量的空格:

Regex aNum = Regex("[a-zA-Z0-9\s]");

请问您能告诉我如何使用 | 将它们合并吗?我已经尝试过了,但是没有成功。 - Mohit Shah

5
"[A-Za-z0-9\s]*"

匹配字母数字字符和空白字符。如果您想要一个可以包含空格但确保以字母数字字符开头和结尾的单词,可以尝试使用

"[A-Za-z0-9][A-Za-z0-9\s]*[A-Za-z0-9]|[A-Za-z0-9]"

4
不允许空字符串,则需进行以下操作:
Regex.IsMatch(s ?? "",@"^[\w\s]+$"); 

并允许空字符串

Regex.IsMatch(s ?? "",@"^[\w\s]*$"); 

我添加了 ?? "",因为 IsMatch 不接受 null 参数


1
如果您想检查字符串中间的空格,可以使用以下模式:
  1. "(\w\s)+":这必须匹配至少带有一个空格的单词。
  2. "(\w\s)+$":这必须匹配至少带有一个空格并以空格结尾的单词。
  3. "[\w\s]+":这匹配单词、空格或两者。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接