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