Hallo Markus,
das kann ich Dir auch nicht verbindlich bestätigen, aber es ist wohl mit
dem POSIX-Standard übereinstimmend.
Hier https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck war folgender
Link "POSIX-Spezifikation für reguläre Ausdrücke"
https://pubs.opengroup.org/onlinepubs/009695399/toc.htm (POSIX
https://de.wikipedia.org/wiki/Portable_Operating_System_Interface )
zu finden.
Da dann:
9. Regular Expressions
9.3.3 BRE Special Characters
^ The circumflex shall be special when used as:
An anchor (see BRE Expression Anchoring)
The first character of a bracket expression (see RE Bracket Expression)
BRE Expression Anchoring
9.3.8 BRE Expression Anchoring
A BRE can be limited to matching strings that begin or end a line; this
is called "anchoring". The circumflex and dollar sign special characters
shall be considered BRE anchors in the following contexts:
A circumflex ( '^' ) shall be an anchor when used as the first character
of an entire BRE. The implementation may treat the circumflex as an
anchor when used as the first character of a subexpression. The
circumflex shall anchor the expression (or optionally subexpression) to
the beginning of a string; only sequences starting at the first
character of a string shall be matched by the BRE. For example, the BRE
"^ab" matches "ab" in the string "abcdef", but fails to match in the
string "cdefab". The BRE "\(^ab\)" may match the former string. A
portable BRE shall escape a leading circumflex in a subexpression to
match a literal circumflex.
A dollar sign ( '$' ) shall be an anchor when used as the last character
of an entire BRE. The implementation may treat a dollar sign as an
anchor when used as the last character of a subexpression. The dollar
sign shall anchor the expression (or optionally subexpression) to the
end of the string being matched; the dollar sign can be said to match
the end-of-string following the last character.
A BRE anchored by both '^' and '$' shall match only an entire string.
For example, the BRE "^abcdef$" matches strings consisting only of
"abcdef".
Ich interpretiere es so: ^ ist ein Anker. Nur den Anker kann man nicht
finden, sondern nur das, was direkt am Anker dranhängt.
Ausnahmen - vim - bestätigen die Regel ;-))
Grüße
Hans-Werner :-))
------ Originalnachricht ------
Von "Markus Mueller" <markus-muel...@posteo.de>
An users@de.libreoffice.org
Datum 21.12.2022 17:08:12
Betreff Re: [de-users] RegEx in LibreOffice und Anker für Zeilenanfang
Hallo Hans-Werner,
wieder was gelernt ...
Ich bin mir aber nicht so ganz sicher, ob die ICU ein Gremium ist, das eine dem
Normungsgremium ISO vergleichbare "Macht" hat (z.B. für die Standardisierung
von C) und federführend die RegEx beschreibt.
LG
M
Am 21.12.2022 um 16:58 schrieb OoOHWHOoO:
Hallo Markus,
es gibt schon einen RegExp-Standard:
https://unicode-org.github.io/icu/userguide/strings/regexp.html#regular-expression-metacharacters
In der LO-Hilfe steht, dass LO den Standard unterstützt:
For a full list of supported metacharacters and syntax, see ICU Regular Expressions
documentation
<https://unicode-org.github.io/icu/userguide/strings/regexp.html#regular-expression-metacharacters>
Die LO GUI "Suchen und Ersetzen" unterstützt nicht alles, aber im LO BasicMakro
wird schon alles unterstützt ...
Gruß
Hans-Werner ;-))
------ Originalnachricht ------
Von "Markus Mueller" <markus-muel...@posteo.de>
An users@de.libreoffice.org
Datum 21.12.2022 16:38:06
Betreff Re: [de-users] RegEx in LibreOffice und Anker für Zeilenanfang
ohne es im Detail zu wissen: es sind nicht alle RegEx-Implementationen völlig
kongruent bzw. sie haben Dialekte ausgebildet und manche sind auch
unvollständig umgesetzt.
Ich vermute, VIM ist da einfach "weiter" als LO. Ich würde das nicht unbedingt als Bug sondern als
unvollstänige Implementerung begreifen. M.W. handelt es sich bei den den "regulären Ausdrücken "
auch nicht um eine standadisierte "Sprache", so dass bei den unterschiedlichen Implementierungen
Unterschiede auftreten.
LG
M
Am 21.12.2022 um 15:58 schrieb Matthias Müller Posteo.de:
Hallo an Alle, aber vor allem RegEx-Experten,
Gegeben sei eine Textdatei mit folgendem Inhalt (der Tab am Anfang dient nur
der Darstellung):
hallo
hello
tschuess
goodbye
adieu
Folgende RegEx im Vim:
:1,$s/^/\\\\server\\freigabe\\/
Man beachte den Anker für den Zeilenanfang, der steht solo da. Ergibt dieses
(gewünschte) Ergebnis:
\\server\freigabe\hallo
\\server\freigabe\hello
\\server\freigabe\tschuess
\\server\freigabe\goodbye
\\server\freigabe\adieu
Soweit erst mal Okay, in Vim.
Jetzt das ganze auf LibO übertragen. Tabelle mit obigen Inhalt in Zellen A1
bis E1. Suchen und Ersetzen aufgerufen mit den
- Parametern "Reguläre Ausdrücke", Suchen = "^",
Ersetzen = "\\\\server\\freigabe\\$1"
Das Suchmuster wird Rot markiert, ich schätze, da ist was falsch. Aber was?
Das Suchen und ersetzen funktioniert nicht. Doku konsultiert, die sagt das
Carret "^" ist das Zeichen für den Anfang einer Zeile oder Tabelleninhalts
(aka Anker für Zeilenanfang). So habe ich auch RegEx mal gelernt. Sollte
eigentlich funktionieren, tut's aber nicht.
Diese Parameter funktionieren und liefern das gewünschte Ergebnis:
- Parametern "Reguläre Ausdrücke", Suchen = "(^.*)",
Ersetzen = "\\server\freigabe\\$1"
- liefert \\server\freigabe\hallo
\\server\freigabe\hello
\\server\freigabe\tschuess
\\server\freigabe\goodbye
\\server\freigabe\adieu
- Parametern "Reguläre Ausdrücke", Suchen = "(.*)",
Ersetzen = "\\server\freigabe\\$1"
- liefert \\server\freigabe\hallo
\\server\freigabe\hello
\\server\freigabe\tschuess
\\server\freigabe\goodbye
\\server\freigabe\adieu
Was stimmt da nicht? Sind meine Überlegungen falsch oder ist das ein Bug? Da
das ganze mit Vim klappt würde ich behaupten ein Bug, entweder in LibO oder in
der Doku.
Was sagen die anderen Experten?
LibO-Version: 7.4.2.3 / LibreOffice Community
Build ID: 382eef1f22670f7f4118c8c2dd222ec7ad009daf
CPU threads: 4; OS: Linux 5.10; UI render: default; VCL: kf5 (cairo+xcb)
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Calc: threaded
unter Betriebssystem: Debian GNU/Linux 11
KDE-Plasma-Version: 5.20.5
KDE-Frameworks-Version: 5.78.0
Qt-Version: 5.15.2
Kernel-Version: 5.10.0-20-amd64
Art des Betriebssystems: 64-bit
Prozessoren: 4 × Intel® Core™ i5-2450M CPU @ 2.50GHz
Speicher: 7,7 GiB Arbeitsspeicher
Grafikprozessor: Mesa DRI Intel® HD Graphics 3000
VIM - Vi IMproved 8.2 (2019 Dec 12 kompiliert am Oct 01 2021 01:51:08)
Inklusive der Patches: 1-2434
Extra Patches: 8.2.3402, 8.2.3403, 8.2.3409, 8.2.3428
Verändert vonteam+...@tracker.debian.org
Aber auch:
VIM - Vi IMproved 8.1 (2018 May 18, compiled May 18 2018 18:36:07)
MS-Windows 32 Bit GUI Version mit OLE-Unterstützung
Version: 7.2.1.2 (x64) / LibreOffice Community
Build ID: 87b77fad49947c1441b67c559c339af8f3517e22
CPU threads: 8; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: threaded
-- Liste abmelden mit E-Mail an: users+unsubscr...@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+unsubscr...@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+unsubscr...@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