views:

378

answers:

3

How to preg_match for an null (empty) string??

I need something like:

/([0-9]|[NULL STRING])/
+6  A: 

You can use ^ to match beginning-of-line, and $ to match end-of-line, thus the regular expression ^$ would match an empty line/string.

Your specific example (a line/string containing a single digit or being empty) would easiest be achieved with ^[0-9]?$.

Mikael Auno
Or `^\d?$` - somehow I like `\d` than `[0-9]`, sorry :)
Amarghosh
@Amarghosh: I too prefer `\d`, especially as it is a lot easier/shorter to type. Though, for regular expression beginners, I like to stick with the basics when giving examples as fancy stuff like `\d` doesn't work in all regular expression flavors.
Mikael Auno
...and `\d` doesn't *mean* the same thing as `[0-9]` in some regex flavors. For instance, in .NET, `\d` matches `٣` (Arabic numeral 3).
Tim Pietzcker
A: 

You can also match a null character with \0. Is that what you meant by [NULL STRING]? That expression could be /([0-9]|\0)/.

FrustratedWithFormsDesigner
A: 

With PHP's regex you can just say:

/(\d|)/

It may be usefull...

Jrgns