如何在同一个字符串中匹配多组正则表达式模式?

时间:2012-07-15 13:23:44

标签: regex whitespace

我正在构建一个符合以下要求的字符串的正则表达式:

  1. 该字符串最多包含5组字母数字字符。
  2. 字符串中的每个集合由SINGLE空格字符分隔。
  3. 例如,我们可以使用“asa22d asdcac3”或“Asdcd234 sacasW2 sas1 s sd1”(希望你能得到图片)。到目前为止,我有:

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

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

    我该怎么做?

2 个答案:

答案 0 :(得分:1)

您还没有说过您使用的语言,但这应该适合您:

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

一个单词,后跟最多四个空格然后单词的实例。

答案 1 :(得分:0)

您需要的工具

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

实施例

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

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

# PCRE expression with intervals
\A(\p{Xan}+\s?){1,5}\Z