如何 preg_match 为空(空)字符串?
我需要类似的东西:
/([0-9]|[NULL STRING])/
您可以使用^
来匹配行首和$
行尾,因此正则表达式^$
将匹配空行/字符串。
您的具体示例(包含单个数字或为空的行/字符串)最容易使用^[0-9]?$
.
使用 PHP 的正则表达式,您可以说:
/(\d|)/
可能有用...
您还可以将空字符与\0
. 这就是您所说的 [NULL STRING] 的意思吗?那个表情可能是/([0-9]|\0)/
。
我必须在 Java 中为 CC 号码的最后 4 位执行此操作。该字段是可选的,因此它可以是空的,也可以是 4 位数字。我的解决方案是:
^\d{4}$|^$
以典型的 java 方式传递 null 会导致空指针异常:
String myString = null;
last4Pattern.matcher(myString).matches(); //Null in this case.
但是,我觉得这更像是一个Java实现问题。
由于匹配空字符串并不容易,但通常可以匹配任何非空字符串,因此请考虑将其反转而不匹配相反的内容(双重否定)。
在此示例中,所有不是( ^
) 的非数字 ( \D
) 零次或一次 ( ?
):
[^\D]?
(或特定的 ascii:[^\x00-\x29\x3a-\xff]?
或 unicode: [^\u0000-\u0029\u003a-\uffff]?
)
匹配 "" ( <empty string> )、 " 0
"、 " 1
" .. " 9
",但不匹配 " "、 ( <space> )、 "
A
" (非数字) 或 " 123
" (任何更长的字符串)。