Seite 1 von 1

Searchdescriptor Textcursor erweitern

Verfasst: Mi 4. Jun 2014, 18:16
von gogo
Hallo zusammen,

da LO leider keine "look-around Assertions" für reguläre Ausdrücke unterstützt wollte ich das in einem Makro simulieren, bin aber kläglich gescheitert.

Der Regex-Ausdruck "(?<!e)i" würde alle "i" in einem Text finden, wenn sie nicht hinter einem "e" stehen.
Eine Suchschleife wäre:

Code: Alles auswählen

oDoc = thisComponent
oSuche = odoc.createsearchdescriptor()
oSuche.setsearchstring("i")
oFound = oDoc.findfirst(oSuche)
do while not IsNull(oFound)
'	oFound.getString()= "i"
	oFound.goLeft(1,true)
'	oFound.getString()= ""
	oFound = oDoc.findnext(oFound.end, oSuche)
loop
mit oFound.getString() gibt's den gefundenen Text - aber wie komme ich an das/die Zeichen links/rechts davon? "oFound.goLeft(1,true oder false)" liefert immer einen leeren String.

Re: Searchdescriptor Textcursor erweitern

Verfasst: Mi 4. Jun 2014, 20:20
von karolus
Hallo

→→S&E
suche nach

Code: Alles auswählen

[^e]i
Karolus

Re: Searchdescriptor Textcursor erweitern

Verfasst: Mi 4. Jun 2014, 22:15
von gogo
thx, da hab' ich wohl den Wald vor lauter Bäumen nicht gesehen. Der Match ist dann aber ".i" und "i" am Absatzanfang wird nicht gefudnen. Das lässt sich aber durch "^i|[^e]i" erreichen.
Danke! Problem gelöst!
PS: was heißt "→→S&E" ?

Re: Searchdescriptor Textcursor erweitern

Verfasst: Do 5. Jun 2014, 10:33
von karolus
Hallo
PS: was heißt "→→S&E" ?
Was ist wohl das Thema hier ??
→Bearbeiten→Suchen und Ersetzen

Karolus

Re: Searchdescriptor Textcursor erweitern

Verfasst: Do 5. Jun 2014, 12:09
von gogo
:roll:
... aber bei solchen Regexausdrücken:
"\<[sS]ch[a-z]{0,10}[aeiou][lmnr]|\<[sS]p[a-z]{0,10}[aeiou][lmnr]|\<[qtQT][a-z]{0,10}[aeiou][lmnr]"
kann ich mich einfach nicht mehr auf einfache Sachen konzentrieren ;)

Ähm - ist

Code: Alles auswählen

oFound.goLeft(1,true) ergibt oFound.getString()= "" 
jetzt ein Bug? (und bevor jemand fragt: ja, es gibt links und rechts des Cursors genügend Zeichen)

Re: Searchdescriptor Textcursor erweitern

Verfasst: Do 5. Jun 2014, 13:30
von karolus
Hallo

Bevor wir weiter im Nebel stochern - was ist die eigentliche Aufgabe ?

Karolus

Re: Searchdescriptor Textcursor erweitern

Verfasst: Do 5. Jun 2014, 15:03
von gogo
karolus hat geschrieben:Hallo
Bevor wir weiter im Nebel stochern - was ist die eigentliche Aufgabe ?
Karolus
Die ist "gelöst", ich wollte nur - falls ich in Zukunft mal einen Cursor manipulieren muss - wissen ob das so einfach geht.

(Die eigentliche Aufgabe ist ein Makro, das in einen Writertext Rechtschreibfehler einbaut (Daten + funktionsfähiges Beta-Makro im Anhang) - Rechtschreibkorrektur mal anders)