Kuchařka regulárních výrazů, 2. vydání Jan Goyvaerts, Steven Levithan

Omezit vstup na alfanumerické znaky v libovolném jazyce

Tento regulární výraz omezuje vstup na písmena a čísla z libovolného jazyka nebo skriptu:

^+$

Možnosti regulárního výrazu: Varianty regexu: .NET, Java, XRegExp, PCRE, Perl, Ruby 1.9

Tento regex používá třídu znaků, která obsahuje zkratky pro všechny kódové body v kategoriích písmen, značek a desetinných čísel Unicode, což odpovídá oficiální definici alfanumerického znaku Unicode. Kategorie značek je zahrnuta, protože značky jsou vyžadovány pro slova mnoha jazyků. Značky jsou kódové body, které jsou určeny ke kombinaci s jinými znaky (například k vytvoření akcentované verze základního písmene).

Kategorie Unicode bohužel nejsou podporovány všemi variantami regulárních výrazů, kterými se zabývá tato kniha. Konkrétně tento regex nebude fungovat s jazykem JavaScript (pokud nepoužijete XRegExp), Pythonem nebo nativní příchutí jazyka Ruby 1.8. Použití tohoto regexu s PCRE vyžaduje, aby bylo PCRE zkompilováno s podporou UTF-8, a kategorie Unicode lze použít s funkcemi PHP preg (které spoléhají na PCRE), pokud je k regexu připojena volba /u.

Následující regex ukazuje řešení pro Python:

^+$

Volby regexu: Příklady regexů: Unicode

Regex flavors: V tomto případě obejdeme nedostatek kategorií Unicode v jazyce Python použitím příznaku UNICODE nebo U při vytváření regulárního výrazu. Tím se změní význam některých regexových tokenů tak, že budou používat tabulku znaků Unicode. ‚\w‚ nás pak dostane na většinu cesty k řešení, protože odpovídá alfanumerickým znakům a podtržítku. Použitím jeho inverze ‚\W‚ v negované třídě znaků můžeme podtržítko z této množiny odstranit. Takovéto dvojité zápory jsou v regulárních výrazech občas docela užitečné, i když může být obtížné se v nich vyznat. Python 3.x ve výchozím nastavení zahrnuje neASCII znaky ve zkratkách jako ‚\w‚, a proto nevyžaduje příznak UNICODE.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.