Preg匹配空字符串

时间:2009-11-27 16:23:02

标签: regex preg-match

如何为null(空)字符串preg_match ??

我需要类似的东西:

/([0-9]|[NULL STRING])/

5 个答案:

答案 0 :(得分:61)

您可以使用^来匹配行首和$以匹配行尾,因此正则表达式^$将匹配空行/字符串。

使用^[0-9]?$最容易实现您的具体示例(包含单个数字或为空的行/字符串)。

答案 1 :(得分:5)

使用PHP正则表达式,您可以说:

/(\d|)/

它可能有用......

答案 2 :(得分:1)

您还可以将空字符与\0匹配。那是[NULL STRING]的意思吗? 该表达式可以是/([0-9]|\0)/

答案 3 :(得分:1)

我必须在java中为CC编号的最后4个执行此操作。该字段是可选的,因此它可以是空的,也可以是4位数。我的解决方案是:

^\d{4}$|^$

在典型的java方式中传递此null会导致空指针异常:

String myString = null;
last4Pattern.matcher(myString).matches(); //Null in this case.

但是,我觉得这更像是一个Java实现问题。

答案 4 :(得分:0)

由于匹配空字符串并不容易,但通常可以匹配任何不是空字符串的内容,请考虑将其转过来,匹配对面(双重否定)。
在此示例中,^ -digit(\D)的所有内容均为零或一次({{1} }):

?

(或针对特定的ascii: [^\D]? ,或unicode: [^\x00-\x29\x3a-\xff]?

匹配“”(<空字符串> ),“ [^\u0000-\u0029\u003a-\uffff]? ”,“ 0 “..” 1 “,但不是”9“,(< space> ),” {{1 } “(非数字)或” “(任何更长的字符串)。