用正则表达式检测非空字符串?

问题描述 投票:0回答:3

如何编写 PHP 正则表达式来检测字符串不为空?

空意味着,在本例中为 0 个字符。例如,单个空格或单个换行符算作非空。

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

更新:

出于悲伤的原因,我也不能在

//
之外使用任何正则表达式修饰符,例如“s”。

致反对票的人:问题是不是太简单了?还是不够清楚?

php regex pcre
3个回答
10
投票
/[\s\S]/

匹配任何字符,即使您无法使用

/s
修饰符。

您不需要量词 (

+
),因为如果一个字符匹配,则条件已满足。


6
投票

只是一个想法(至少匹配任何一个):

/.{1,}/
  • 或者,甚至更短的版本(如@tigrang建议的):
    /.+/
  • 或者,甚至更完整的版本(包括@BartKiers对

    newline
    支持的建议),其中
    s
    修饰符导致
    .
    元字符也匹配
    \r
    \n

    /.+/s
    

0
投票
  1. 具有独家完整课程的角色课程:
    /[\w\W]/
    /[\s\S]/
    /[\d\D]/
  2. 字符串末尾的负前瞻:
    /(?!=\z)/
    /(?!=$)/D
  3. Unicode
    Any
    类:
    /\p{Any}/u
    ,也匹配换行符
  4. 单行模式下的周期:
    /./s
  5. 更改
    .
    和换行符:
    /.|\n/
© www.soinside.com 2019 - 2024. All rights reserved.