C'è qualche differenza tra (\w+)?
e (\w*)
in regex?Differenza Regex: ( w +)? e ( w *)
Sembra lo stesso, vero?
C'è qualche differenza tra (\w+)?
e (\w*)
in regex?Differenza Regex: ( w +)? e ( w *)
Sembra lo stesso, vero?
(\w+)?
e (\w*)
sia abbinare lo stesso (0 .. + caratteri di parola inf)
Tuttavia, v'è una leggera differenza:
Nel primo caso, se questa parte del regex ""
, il gruppo che cattura è assente. Nel secondo caso, è vuoto. In alcune lingue, il primo si manifesta come null
mentre il secondo dovrebbe sempre essere ""
.
In JavaScript, ad esempio,
/(\w*)/.exec("") // ["", ""]
/(\w+)?/.exec("") // ["", undefined]
In PHP (preg_match
), nel primo caso, il tasto corrispondente è semplicemente assente nella matrice partite: http://3v4l.org/DB6p3#v430
Sembra lo stesso, tranne se ti interessa '" "' vs. 'null' –
' (\ w +)? 'sembra strano. dove l'hai visto? Qualche link a risorsa esterna per favore? –
Ho visto '(\ w +)?' Nel mio progetto aziendale –