Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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_Regex_Pcre - Fatal编程技术网

Php 是否使用regexp检测非空字符串?

Php 是否使用regexp检测非空字符串?,php,regex,pcre,Php,Regex,Pcre,如何编写一个PHP正则表达式来检测字符串是否为空 空表示在本例中为0个字符。例如,一个空格或一个换行符不算空 (它必须是适用于preg_match()的regexp,因为我有一个包含各种regexp的查找表,并且不想以任何特殊方式处理这种情况,所以在这里不使用regexp会使代码复杂化。) 更新: 出于悲伤的原因,我也不能在/之外使用任何正则表达式修饰符,如“s” 对下层选民来说:这个问题太简单了吗?还是不够清楚?只是一个想法(至少与任何内容中的一个匹配): 或者,更简短的版本(如@tigra

如何编写一个PHP正则表达式来检测字符串是否为空

空表示在本例中为0个字符。例如,一个空格或一个换行符不算空

(它必须是适用于preg_match()的regexp,因为我有一个包含各种regexp的查找表,并且不想以任何特殊方式处理这种情况,所以在这里不使用regexp会使代码复杂化。)

更新:

出于悲伤的原因,我也不能在
/
之外使用任何正则表达式修饰符,如“s”

对下层选民来说:这个问题太简单了吗?还是不够清楚?

只是一个想法(至少与任何内容中的一个匹配):

  • 或者,更简短的版本(如@tigrang所建议的):
    /.+/
  • 或者,更完整的版本(包括@BartKiers对
    newline
    支持的建议),其中
    s
    修饰符使
    元字符与
    \r
    \n
    匹配:

    /.+/s
    
匹配任何字符,即使不能使用
/s
修改器


您不需要量词(
+
),因为如果一个字符匹配,那么条件就已经满足了。

为什么不想以任何特殊的方式处理这个问题?“…只有空格不算空…”-因此,没有空格的字符串??任何字符串都会,除了0个长度的……抱歉误读了,并给出了与您所需相反的内容:)@TimPietzcker不知道,但我是一位披着斗篷的十字军战士,将Amiga编程技巧与伊曼纽尔·康德的道德哲学结合在一起默认情况下,
与换行符字符不匹配。因此,
preg_match('/.+/',“\n”)
将失败(返回0)。@BartKiers的观点也很好,尽管我不确定OP是否真的关心换行符。…@Dr.Kameleon,好吧,既然OP提到一个白色不是空的,我会想象一个换行符是一样的。我想说,
将是空字符串,其他一切都不是。我冒昧地解释了
\r
。如果你真的吹毛求疵,你甚至不需要里面的
+
:只有
//s
就足够了:)@AmigableClarkKant,无论是
/[\s\s]/
还是
/(?s)。/
都和
//s
一样。言简意赅!您可以添加关于内联
(?s)
?当然,也可能不是:)
/.+/s
/[\s\S]/