RegExp -> Matching
Silvan Gehrig
- perl
Hi Folks,
Folgendes schwebt mir vor:
{
c 120 Content
c 180 Content
}
nun möchte ich alles zwischen den { } zu matchen; /{\n(.*?)\n}/gi
aber irgendwie bringt es des RegExp fertig, nichts zu tun :(
hat wer ne idee?
thx
Silvan
Hallo Silvan,
{
c 120 Content
c 180 Content
}nun möchte ich alles zwischen den { } zu matchen;
/{\n(.*?)\n}/gi
aber irgendwie bringt es des RegExp fertig, nichts zu tun :(hat wer ne idee?
Dir fehlt der Modifier 's'.
Gruesse,
CK
Hi CK,
Thanx for your answer.
Ist es aber nicht eher der 'm' Modifier?
irgendwie funzt de immer no ned :(
Gruss Silvan
Hallo Silvan,
{
c 120 Content
c 180 Content
}nun möchte ich alles zwischen den { } zu matchen;
/{\n(.*?)\n}/gi
aber irgendwie bringt es des RegExp fertig, nichts zu tun :(hat wer ne idee?
Dir fehlt der Modifier 's'.
Gruesse,
CK
Hallo Silvan,
Ist es aber nicht eher der 'm' Modifier?
Nein, 's'. 's' sorgt dafuer, dass '.' und '\s' auch auf
Newlines matchen.
irgendwie funzt de immer no ned :(
Dann mach den RegEx etwas tolleranter:
m!{([^}]*)}!s;
Gruesse,
CK
Hi CK,
Die Vereifachung ist eine sehr effiziente Methode :)
Der folgende hat gefunzt:
/{([^}]*?)}//gi
*juhu* :)
Thanx you for your help :)
Gruss Silvan
P.S: Have a look at http://www.mcdark.ch :)
Hallo Silvan,
Ist es aber nicht eher der 'm' Modifier?
Nein, 's'. 's' sorgt dafuer, dass '.' und '\s' auch auf
Newlines matchen.irgendwie funzt de immer no ned :(
Dann mach den RegEx etwas tolleranter:
m!{([^}]*)}!s;
Gruesse,
CK
Hallo Silvan,
Die Vereifachung ist eine sehr effiziente Methode :)
Der folgende hat gefunzt:/{([^}]*?)}//gi
Wenn du jetzt noch das ? weglaesst, ist der RegEx sogar
schnell. :)
Gruesse,
CK
Hi CK,
Mal überlegen: den ungreedy benötige ich, was aber
nicht unbedingt sein muss ist das doppelte Slash (//)
also: /{([^}]*?)}/gi
oky?
Gruss Silvan
Hallo Silvan,
Die Vereifachung ist eine sehr effiziente Methode :)
Der folgende hat gefunzt:/{([^}]*?)}//gi
Wenn du jetzt noch das ? weglaesst, ist der RegEx sogar
schnell. :)Gruesse,
CK
Hallo Silvan,
Mal überlegen: den ungreedy benötige ich,
Nein. Das von dir benutzt {(.*?)} ist dasselbe wie
{[^}]*}, nur das der zweite Ausdruck schneller ist. Dein Ausdruck sagt: 'Finde mir alles bis zum Stringende. Ach nee,
moment, nur bis zum naechsten }'. Mein Ausdruck sagt 'finde mir
alles ausser }', was zwangslaeufig zum naechsten '}' fuehrt.
Gruesse,
CK