Regex: [^mehr_als_ein_chr]
tester
- php
moin!
wie kann man in nem regex-platzhalter ne bedingung festlegen, die festlegt, dass bis zu der stelle, an der eine bestimmte zeichenfolge vorkommt, gelesen wird.
normalerweise macht man ja sowas: [^<]
aber beispielsweise [^class] geht nicht !
bitte helft !
danke
Hi,
aber beispielsweise [^class] geht nicht !
doch, das matcht auf alles, was weder "c" noch "l" noch "a" noch "s" ist. Übrigens reicht in einer Zeichenklasse die einfache Nennung eines jeden Zeichens, mehrfach ist nicht nötig.
Vermutlich möchtest Du in der Dokumentation der Pattern Syntax nach Negative Assertion suchen.
Cheatah
so, habs mir mal durchgelesen.
ABER leider funktioniert es nicht, so, wei es sollte !!!
is ein etwas längerer string, bis zu dem der platzhalter reichen sollte...
<td colspan="7" height="15" nowrap="nowrap"><spacer type="block" height="1" width="1">
hab das schon alles vergeblich versucht:
(?<=(<td colspan="7" height="15" nowrap="nowrap"><spacer type="block" height="1" width="1">))
(?<=<td colspan="7" height="15" nowrap="nowrap"><spacer type="block" height="1" width="1">)
(?<=(<td colspan="7" height="15" nowrap="nowrap"><spacer type="block" height="1" width="1">)*?)
(?>=(<td colspan="7" height="15" nowrap="nowrap"><spacer type="block" height="1" width="1">))
(?>=<td colspan="7" height="15" nowrap="nowrap"><spacer type="block" height="1" width="1">)
(?>=(<td colspan="7" height="15" nowrap="nowrap"><spacer type="block" height="1" width="1">)*?)
Hi,
hab das schon alles vergeblich versucht:
(?<=
an dieser Stelle ist bereits der Fehler. Such noch mal.
Cheatah
moin!
n'abend.
aber beispielsweise "[^class]" geht nicht !
du musst beachten, dass es sich bei [...] um EIN Zeichen handelt. Es ist sozusagen ein Zeichen, was bei deinem Beispiel entweder kein c oder ein l oder ein a oder ein s ist.
Du solltest nach "^(class)" suchen.
danke
bitte
Hi,
Du solltest nach "^(class)" suchen.
und was bringt es ihm, wenn er "class" am Stringanfang findet?
Cheatah
Hallo,
wie kann man in nem regex-platzhalter ne bedingung festlegen, die festlegt, dass bis zu der stelle, an der eine bestimmte zeichenfolge vorkommt, gelesen wird.
Wenn ich Dich richtig verstehe, willst Du z. B. aus der Zeichenfolge
alablacladlaclassblaclassbla
alablacladla
matchen? Probiere doch mal
(.*?)class.*
Das Fragezeichen muesste den ersten .* weniger "gefraessig" (greedy) machen als den zweiten, sodass der Ausdruck in Klammern vor dem ersten Auftreten von class aufhoert und das von Dir gewuenschte Ergebnis erhalten muesste.
Habe das jetzt aber nicht pruefen koennen...
Erklaerungen findest Du unter "Repetition" auf
http://www.php.net/manual/de/pcre.pattern.syntax.php
Grüße, Alex.