PHP Regex: Leerzeichen finden

  • Ersteller Ersteller Mr. Snoot
  • Erstellt am Erstellt am
M

Mr. Snoot

Gast
Hio,

ich habe folgenden Code um eine Wortgrenze (\b) 0 bis $len Zeichen vor/hinter $search_word zu finden:

PHP:
preg_match("=\b.{0,$len}($pref$search_word$pref).{0,$len}\b=s$capit", $a, $hit);

Leider werden so auch Grenzen gefunden, die ich nicht möchte (bspw. an einem ;). Lieber wäre es mir, einfach ein Leerzeichen als Wortgrenze zu benutzen.

Wie gebe ich das im Code an? Gibt es außer \s noch eine Möglichkeit (\s findet ja alle Whitespaces, nicht nur Leerzeichen)? Einfach ein Leerzeichen statt \b anzugeben sieht merkwürdig aus - scheint aber zu klappen (soweit ich das sehe).

PHP:
preg_match("= .{0,$len}($pref$search_word$pref).{0,$len} =s$capit", $a, $hit);
 
benutz doch den hexadezimalen code. ich glaub das ging mit \x20 (wenn 20 das leerzeichen war) oder so.
 
Danke, das funktioniert. Aber so wirklich sympatisch ist mir das auch nicht :D

Wär's denn korrekt, einfach ein Leerzeichen reinzuschreiben? Wie gesagt (soweit ich sehe) funktioniert das - aber sieht einfach merkwürdig aus.
 
Mr. Snoot schrieb:
Wär's denn korrekt, einfach ein Leerzeichen reinzuschreiben?
klar, nutz ich auch desöfteren, wenn ich z.b. links von webseiten filtern will. z.b.:
PHP:
'#<a href="http://www.xyz.be/(.*?)/" title="(\\d+) wallpapers for (.*?)">#i'
'#(.*?) \\((\\d+) wallpapers\\)#i'
'#(http://wallpaper.xyz.be/(.*?)/(\\d+)/(\\d+)x(\\d+)/)#i'
'#Page (\\d+) of (\\d+)#i'
'#<img src="(.*?)" alt="Thumbnail" title=".*?" width="150" />#i'
'#<img id=".*?" src="(.*?)" alt=".*?" width=".*?" height=".*?" />#i'
 
Zurück
Oben