Pergunta

Como preg_match para um nulo (vazio) Cadeia ??

Eu preciso de algo como:

/([0-9]|[NULL STRING])/
Foi útil?

Solução

Você pode usar ^ para corresponder começando-de-linha, e $ para coincidir com end-of-line, assim, a ^$ expressão regular iria coincidir com uma linha vazia / string.

O seu exemplo específico (uma linha / string contendo um único dígito ou estar vazio) seria mais fácil ser alcançado com ^[0-9]?$.

Outras dicas

Com regex do PHP você pode simplesmente dizer:

/(\d|)/

Pode ser útil ...

Você também pode combinar um caractere nulo com \0. É isso que você quer dizer com [TEXTO NULL]? Essa expressão poderia ser /([0-9]|\0)/.

Eu tinha que fazer isso, em java, para o último 4 para um número CC. O campo é opcional para que ele poderia estar vazio, ou 4 dígitos. Minha solução é:

^\d{4}$|^$

A está passando este um nulo nos resultados típicos de java de moda em uma exceção de ponteiro nulo:

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

No entanto, sinto que é mais de um problema de implementação Java.

Como não é fácil de combinar uma cadeia vazia, mas geralmente é possível para combinar qualquer coisa que não é uma cadeia vazia, considere dar a volta e não coincidir com o oposto (duplo negativo).
Neste exemplo, tudo o que é não (^) a não com quatro dígitos (\D) para zero ou uma vez (?):

[^\D]?

(ou para ASCII específica: [^\x00-\x29\x3a-\xff]? , ou Unicode: [^\u0000-\u0029\u003a-\uffff]? )

Jogos "um" ( ), " 0 ", " 1 " .. " 9 "mas não um "", ( ), " A "(não-dígito) ou" 123 "(qualquer seqüência mais longa).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top