3

我正在针对满足以下要求的字符串构建正则表达式:

  1. 该字符串最多包含 5 组字母数字字符。
  2. 字符串中的每个集合都由单个空格字符分隔。

例如,我们可以有“asa22d asdcac3”或“Asdcd234 sacasW2 sas1 s sd1”(希望你能看懂)。到目前为止,我有:

^[A-z 0-9]\s{0,1}

我没有使用\w,因为它允许下划线。这适用于一组字符,但我需要允许五组由空格分隔的相同类型的字符串。

我怎样才能做到这一点?

4

2 回答 2

3

你还没有说你使用的是什么语言,但这应该为你做:

^[A-Za-z0-9]+(\s[A-Za-z0-9]+){0,4}$

一个单词,后跟最多四个 space-then-word 实例。

于 2012-07-15T13:26:44.273 回答
0

您需要的工具

要匹配正则表达式中模式的多个实例,您可以使用正则表达式引擎允许的匹配组、反向引用和区间表达式的任意组合。

例子

根据您的示例代码,您的正则表达式引擎显然支持间隔,因此请使用它。这里有两个可以实现目标的例子。

# Use POSIX character classes with an interval expression
^([[:alnum:]]+[[:space:]]?){1,5}$

# PCRE expression with intervals
\A(\p{Xan}+\s?){1,5}\Z
于 2012-07-15T13:58:49.703 回答