php - Match alpha letters and accented alpha letters -



php - Match alpha letters and accented alpha letters -

i'm looking regex code pattern:

must contain @ to the lowest degree 1 of next , match whole string.

can contain alpha letters (a-z a-z) ...

and accented alpha letters (á ä à etc).

i'm using preg_match('/^([\p{l}]*)$/iu', $input), \p{l} matches unicode letters, including chinese. want allow english language alphabet letters accented variants of them.

so johndoe, fübar, lòrem, fírstnäme, Çákë valid inputs, because contain @ to the lowest degree 1 alpha letter and/or accented alpha letters, , whole string matches.

i suggest compact regex:

(?i)(?:(?![×Þß÷þø])[a-zÀ-ÿ])+

see demo.

this regex takes advantage of fact accented letters want seem live in unicode character range À ÿ (see table), add together character class. the À-ÿ has few unwanted characters. unlike engines, pcre (php's regex engine) not back upwards character class subtraction, mimic negative lookahead (?![×Þß÷þø]) be aware characters such à can expressed several unicode code points (the à grapheme, or a grave accent). match non-combined graphemes. catching variations hard.

in code:

$regex = "~(?i)(?:(?![×Þß÷þø])[a-zÀ-ÿ])+~u"; $hit = preg_match($regex,$subject,$match);

php regex unicode

Comments

Popular posts from this blog

php - Android app custom user registration and login with cookie using facebook sdk -

django - Access session in user model .save() -

php - .htaccess Multiple Rewrite Rules / Prioritizing -