(regex) was ist an dem pattern falsch?
Sven
- programmiertechnik
0 Tobias Kloth0 Sven
Hello,
ohne vielen Worten[1] meine Frage:
Das Pattern: / *(.+) = ("|')(.+)\2/i
Sowas soll gemacht werden:
Text = "Blabla 'bla' bla"
Nocheintext = 'Bla "bla" bla'
Mit / *(.+) = "(.+)"/i funktioniert das Pattern, mit der Backreference nicht mehr. Wieso?
Gruß,
Sven
[1] Da ich im Moment nur mit einer Hand (und dazu noch der linken...) schreiben kann :[
Hallo Sven,
Das Pattern: / *(.+) = ("|')(.+)\2/i
der Backslash muss afaik maskiert werden, versuch es mal mit »\2« (oder auch »$2«) statt »\2«.
[1] Da ich im Moment nur mit einer Hand
oje, was hast du denn gemacht?
(und dazu noch der linken...)
damit habe ich eigentlich kein Problem :-)
Grüße aus Nürnberg
Tobias
Moin Tobias,
Das Pattern: / *(.+) = ("|')(.+)\2/i
der Backslash muss afaik maskiert werden, versuch es mal mit »\2« (oder auch »$2«) statt »\2«.
arrghh... - wieso hab ich das nicht gleich gemacht!? Auf die Idee bin ich auch schon gekommen, aber im PHP-Manual ist es nicht maskiert:
A back reference matches whatever actually matched the capturing subpattern in the current subject string, rather than anything matching the subpattern itself. So the pattern (sens|respons)e and \1ibility matches "sense and sensibility" and "response and responsibility", but not "sense and responsibility". If caseful matching is in force at the time of the back reference, then the case of letters is relevant. For example, ((?i)rah)\s+\1 matches "rah rah" and "RAH RAH", but not "RAH rah", even though the original capturing subpattern is matched caselessly.<<
(http://de3.php.net/manual/de/reference.pcre.pattern.syntax.php)
ist aber natürlich logisch, dass es maskiert werden muss, da es ja sonst irgendeine Art "Sonderzeichen", wie z.B. \n, \r, usw. es sind, sein müsste.
[1] Da ich im Moment nur mit einer Hand
oje, was hast du denn gemacht?
Überquerung eines schlaglochbestücktem mit weißsstaub-bedeckten Steinen gefülltem Parkplatz + schlecht gelenkt mithilfe des Fahrrads.
:[
(und dazu noch der linken...)
damit habe ich eigentlich kein Problem :-)
ok, tippen mit linker hand + 2 finger rechts geht, mit links allein geht auch noch so, aber beim schreiben wirds praktisch unmöglich - ich bin nämlich rechtshänder :]
Gruß,
Sven