正则表达式检查连续的空格

时间:2011-03-16 17:10:13

标签: php

我正试着写一个正则表达式,试图过滤掉只包含瑞典字母,连字符和单个空格的字符串 - 也就是说,不是连续两个字符串。我有这个preg_match('/^[A-ZÅÄÖa-zåäö-]+\s{1}$/',$b),我觉得我已经尝试了一百种不同的模型,但它不起作用。我该如何做到这一点?

4 个答案:

答案 0 :(得分:1)

多个空格(两个或多个)为{2,},因此请尝试将{1}替换为{1}并再次运行。

答案 1 :(得分:0)

现在,你的正则表达式会查找包含这些字符的单词,然后查找单个空格。如果您正在寻找捕捉[word][single space][word][single space]等内容的方法,您可能需要尝试

/^([A-ZÅÄÖa-zåäö-]+\s{1}?)+$/

答案 2 :(得分:0)

通常,解决此类问题的最佳方法是将其拆分为两个单独的正则表达式检查。

  • 检查字符串是否只包含您想要的字母(和空格)
  • 如果第一次检查通过,请检查它是否没有两个或更多连续的空格

尝试:

if ( preg_match('/^[A-ZÅÄÖa-zåäö-\s]$/',$b) && !preg_match('/\s\s+/', $b) ) {
    /...
}

答案 3 :(得分:0)

我得到了一个完美的答案,但它消失了......无论如何,这段代码完成了这个伎俩!preg_match('/^(?:[a-zåäö-]+|\s(?!\s))+$/i',$b)