Date: prev next · Thread: first prev next last
2020 Archives by date, by thread · List index


Hallo Jürgen,

Du möchtest in einem BasicMakro in jeder Zeile ein "REM " voranstellen.

Die " sind nicht anzugeben, sind hier nur zur Abgrenzung der regulären Ausdrücke gegenüber dem Text angegeben. Sind kein Bestandteil des regulären Ausdrucks.

SUCHE "^.*$" und ERSETZE "REM $0" oder "REM &".

Wenn auch Leerzeilen ein "REM " vorangestellt bekommen sollen, muss SUCHE etwas erweitert werden: "^(.*|\n)$"

"[...] & oder $0 - Fügt dem Begriff im Feld Ersetzen die Zeichenfolge hinzu, die anhand der Suchkriterien im Feld Suchen gefunden wurde, wenn Sie eine Ersetzung vornehmen. Wenn Sie beispielsweise "Tür" in das Feld Suchen und "&griff" in das Feld Ersetzen eingeben, wird das Wort "Tür" durch "Türgriff" ersetzt. [...]"

Warum Du "$1" verwendest, verstehe ich nicht wirklich, dass "$0" oder "&" reichen völlig aus. Das "$1" ist für speziellere SUCHEN/ERSETZEN gedacht. Kann man verwenden, muss man aber nicht:

"[...] Mit dem regulären Ausdruck "\b(Frucht|Gemüse)\b" im Feld "Suchen" und dem regulären Ausdruck "$1saft" im Feld "Ersetzen" können Vorkommen der Wörter "Frucht" und "Gemüse" durch die Wörter "Fruchtsaft" und "Gemüsesaft" ersetzt werden, ohne die Wörter "Fruchtsäfte" und "Gemüsesäfte" zu beeinflussen. [...]"

Dein "Ergebnis in der IDE: :(" kann ich bestätigen. Da scheint das gesetzte Häkchen bei "Reguläre Ausdrücke" keinerlei Wirkung zu haben (LO 6.4.7.2 (x64)).

Das könnte ein BUG sein.

Da müssten jetzt mal noch andere des Forums einen kleinen Test machen, ob sie das auch bestätigen können.

Viele Grüße
Hans-Werner :-))

------ Originalnachricht ------
Von: "Jürgen Klatt" <jrk33@web.de>
An: users@de.libreoffice.org
Gesendet: 16.12.2020 20:19:25
Betreff: Re: [de-users] RegEx: Zirkumflex wird nicht erkannt

Hallo Hans-Werner,

vielen Dank für Deine Rückmeldung.

RegExp wird in der BasicIDE sehr umfassend unterstützt.
Ich habe schon das eine oder andere gefunden,
was in Writer funktioniert, aber in der IDE nicht.
So auch jetzt.

Ich bin Deiner Anleitung gefolgt:
Suche:
^(.*)$

Ersetze:
REM $1

Ergebnis in Writer: :)
REM Sub Main

REM End Sub

----------------------------------------

Ergebnis in der IDE: :(
REM  *****  BASIC  *****
REM $1
REM $1
REM $1
REM $1

Option "reguläre Ausdrücke" war aktiviert.
Seltsam, seltsam.

getestet mit:
LibreOffice: 7.0.1.2 (x64)
LibreOffice: 7.2.0.0.alpha0+ (x64)

In beiden Versionen das gleiche Ergebnis.

Deinen Colorisizer werde ich mir näher ansehen.

Bin Dank Deiner HIlfe ein ganzes Stück weitergekommen.

Bleib gesund.

Frohe Weihnachten und viele Grüße

Jürgen


Am 16.12.2020 um 17:23 schrieb OoOHWHOoO:
Hallo Jürgen,

RegExp wird in der BasicIDE sehr umfassend unterstützt. Schau mal
hier: https://www.magentacloud.de/share/iat7ym.wb2#$/

Ich habe mit BasicMakro und RegExp einen kompletten CodeColorizerBasic
realisiert.

^ allein funktioniert nicht, aber beispielsweise funktioniert: ^.*$

Warum ? ^ bedeutet erst mal: Finde ab Zeilenanfang. Und was soll ab
Zeilenanfang gefunden werden ? Im Hilfe-Beispiel ist es "Peter".

Nach dem ^ muss schon noch was kommen. Beispielsweise: ^.*$ (= vom
Zeilenanfang (^) - beliebige Zeichen (.*) - bis Zeilenende ($))

Viele Grüße
Hans-Werner :-))

------ Originalnachricht ------
Von: "Jürgen Klatt" <jrk33@web.de>
An: users@de.libreoffice.org
Gesendet: 16.12.2020 16:21:55
Betreff: [de-users] RegEx: Zirkumflex wird nicht erkannt

Hallo,

da Regex in der Basic-IDE nur bedingt verfügbar ist,
habe ich einen Codeteil in Writer eingefügt und wollte
per RegEx vor jeder Zeile ein "REM " schreiben lassen.

Suche:
^

Ersetze:
REM \1


Aus der Hilfe für LibreOffice 7.0:

^
The beginning of a paragraph or cell.
Special objects such as empty fields or character-anchored frames,
at the beginning of a paragraph are ignored.
Example: "^Peter" matches the word "Peter" only when it is the first
word of a paragraph.

Wenn ich dies richtig verstehe, wird nur der Anfang eines Absatzes
gefunden.
Der Anfang einer Zeile bei einem Zeilenumbruch nicht.
Demnach sollte beim Ersetzen mindestens die erste Zeile geändeter
werden:
REM Sub MeinProgramm

Dies geschieht nicht.

Ist meine RegEx-Syntax für Writer falsch?
Wie lautet die korrekte RegEx-Syntax für: Ersetze jeden Zeilenanfang
durch [REM + Leerschritt]?

PS
In Notepad++ funktioniert meine Syntax einwandfrei, in Writer
wird mir in der Suchzeile das Zirkumflex rot markiert.

Viele Grüße

Jürgen


-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.