seth_not@home: RegEx: "zero-width positive look-ahead assertion

Beitrag lesen

gudn tach!

in »perldoc perlre«:
»We can deal with this by using both an assertion and a negation.«
Wobei hier in »(\D*)(?=\d)« das Element »\D*« als "assertion" bezeichnet wird.

nee, nee.
es faengt ja an mit "When using look-ahead assertions and negations [...] /^\D*(?!123)/".

(?!123) ist die "look-ahead assertion".

Ich übersetze "assertion" mit "Aussage". Ob man den Begriff mit "Aussage" oder "Behauptung" oder sonstwie übersetzt ist irrelevant, ich nehme "Aussage". [...]

keine einwaende.

Probleme entstehen nun, wenn man einem trivialen Begriff wie "Aussage" eine konkrete Bedeutung zudefiniert.

ja, solche probleme koennen entstehen, muessen aber nicht.

Ich kann ja auch hingehen und festlegen, bei mir heißen "zero-width"-Sprachelemente hinfort "Ützelprützel". Man kann mir dann vorwerfen der Name sei Schwachsinn, aber man kann mir nicht vorwerfen, es sei falsch,

er wuerde sogar dem problem der mehrdeutigkeit aus dem weg gehen; und lustig waere er obendrein.

es waere mal ein anderes regexp-buch, wenn du eine neue terminologie einfuehren wuerdest und nur noch von uetzelpruetzeln, grimsegorfs, himpeldimpeln und aehnlichem regen wuerdest. es koennte mit ein bissl glueck kult-status erlangen.

ja, wobei anchors auch bloss lookarounds sind. "^ looks behind", "$ looks ahead", "\b looks around".
^ ist sowas wie (?<!.)
Ja, ich weiß, habe aber diese Sichtweise bisher vernachlässigt. Die Frage ist jetzt, wenn du von einer "zero-width look behind assertion" sprichst, meinst du dann dieses »^« oder jenes Sprachelement »(?<! ... )«?

ja.

prost
seth