Null(空)文字列をpreg_matchする方法?
私は次のようなものが必要です:
/([0-9]|[NULL STRING])/
^
を使用して行の先頭に一致させ、$
を使用して行の末尾に一致させることができるため、正規表現^$
は空の行/文字列に一致します。
特定の例(1桁を含むか空の行/文字列)は、^[0-9]?$
で最も簡単に実現できます。
PHPの正規表現を使用すると、次のように言うことができます。
/(\d|)/
それは便利かもしれません...
また、ヌル文字を_\0
_と照合することもできます。 [文字列]の意味ですか?その式は/([0-9]|\0)/
になります。
私はこれを、Javaで、CC番号の最後の4つについてしなければなりませんでした。このフィールドはオプションなので、空または4桁にすることができます。私の解決策は:
^\d{4}$|^$
典型的なJava形式でこれにnullを渡すと、nullポインタ例外が発生します。
String myString = null;
last4Pattern.matcher(myString).matches(); //Null in this case.
しかし、私はそれがより多くのJava実装の問題であると感じています。
空の文字列を照合するのは簡単ではありませんが、空の文字列でないものはすべて一致する可能性があるため、向きを変えてnotを一致させることを検討してください反対(二重否定)。
この例では、ではないすべてのもの(^
)anon-digit(\D
)ゼロまたは1回(?
):
[^\D]?
(または特定のASCIIの場合:[^\x00-\x29\x3a-\xff]?
、またはユニコード:[^\u0000-\u0029\u003a-\uffff]?
)
""(<空の文字列>)、 "0
"、" 1
".." 9
"、ただし" "ではない(<space>)、" A
"(数字以外)または "123
"(それ以上の文字列)。