Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 要检查连续空格的Regexp_Php - Fatal编程技术网

Php 要检查连续空格的Regexp

Php 要检查连续空格的Regexp,php,Php,我正在努力写一个正则表达式,过滤掉只包含瑞典语字母、连字符和单个空格的字符串,也就是说,不是一行两个。我有这个preg_匹配('/^[A-ZÅÅA-Zåäö-]+\s{1}$/',$b),我觉得我尝试了100种不同的模式,但都不起作用。如何实现这一点?多个空格(两个或更多)是{2,},请尝试用它替换你的{1},然后再次运行它。现在,你的正则表达式将查找一个包含这些字符的单词,然后是一个空格。如果您正在寻找一种方法来捕获诸如[word][single space][word][single spa

我正在努力写一个正则表达式,过滤掉只包含瑞典语字母、连字符和单个空格的字符串,也就是说,不是一行两个。我有这个
preg_匹配('/^[A-ZÅÅA-Zåäö-]+\s{1}$/',$b)
,我觉得我尝试了100种不同的模式,但都不起作用。如何实现这一点?

多个空格(两个或更多)是{2,},请尝试用它替换你的{1},然后再次运行它。

现在,你的正则表达式将查找一个包含这些字符的单词,然后是一个空格。如果您正在寻找一种方法来捕获诸如
[word][single space][word][single space]
之类的内容,您可能需要尝试一下

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

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

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


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

给出匹配的句子和不应该匹配的句子的示例我想我能帮上忙,但我不知道您想要匹配什么。你能解释一下(并举例说明)匹配的字符串和不匹配的字符串吗?这与问题无关,但如果你的源代码(和文本)是UTF-8,你应该使用
u
开关使其正常工作。他说他不想匹配两个空格。@eykanal,我认为真正的问题是没有人知道他想要匹配什么…我甚至不知道他是否知道他想要匹配什么,因此困难:)我很抱歉,但我认为你应该重新阅读regexp的功能,并考虑1个空格,而不是2个或更多。此外,当涉及到与计算机相关的任何事情时,否定都是微不足道的操作。@furicane-如果它是否定,它将是
[^…]
。事实上,他正在使用
^
$
来指定字符串的开头和结尾。各位,很抱歉搞混了,我应该说得更清楚一些。我否定了preg_比赛。对不起,我应该说得更清楚,不过谢谢你的回答,但我并不是真的在找汉克斯,这是有效的:)但我得到了另一个答案,用一种表达方式解决了所有问题。但我还是会给你这个答案:)
if ( preg_match('/^[A-ZÅÄÖa-zåäö-\s]$/',$b) && !preg_match('/\s\s+/', $b) ) {
    /...
}