
Kann mir jemand erklären, wie ich am Ende jeder Zeile ein Pipe-Zeichen mit regulärem Ausdruck einfüge?
Suchen und Ersetzen in Notepad++ verwenden
Ich versuche zu platzierencontent |
Prost!
Antwort1
Wenn Sie am Ende jeder Zeile lediglich ein Pipe-Zeichen hinzufügen möchten, verwenden Sie einfach diesen „Find“-Regex:
$
(Das Dollarzeichen entspricht dem Zeilenende im regulären Ausdruck)
Und dieses „Ersetzen“:
|
Stellen Sie sicher, dass Sie die Suche mit regulären Ausdrücken aktiviert haben.
Antwort2
Finde was:(.*)
Ersetzen mit:$1|
Dies verwendetGruppierung, $1
bedeutet also im Grunde, dass Sie in Klammern einfügen, was gefunden wurde, und dann das Pipe-Zeichen am Ende hinzufügen. Das .
erfasst alle Zeichen außer bestimmten Leerzeichen, wie z. B. Zeilenumbrüche, was in dieser Situation ideal ist. Das *
bedeutet, dass 0 oder mehr Zeichen erfasst werden können, mit dem.
Dies ist skalierbar, wenn Sie also nur bestimmte Zeilen erfassen möchten, z. B. Zeilen, die „Test“ enthalten:
Finde was:(.*test.*)
Ersetzen mit:$1|
Wenn Sie diese also eingeben und dann auf „Alle ersetzen“ klicken, erhalten Sie am Ende jeder Zeile, die dem regulären Ausdruck entspricht, Pipes.
Antwort3
Antwort geändert.
Ich würde das hier verwenden. Es funktioniert entweder im ein- oder mehrzeiligen Modus.
Ich bin mir nicht sicher, was Notepad zur Verfügung hat (z. B. Suchen/Ersetzen, Finden/Ersetzen usw.).
Suchen Sie nach diesem: (?=\r\n|\n|\r|$)
und fügen Sie das hier ein (ersetzen Sie es): |
Nur ein paar Anmerkungen zu dem komplizierten Thema, was $ metachar eigentlich ist.
Es ist nicht so einfach, wie es sein sollte, und die Dokumente lassen einiges zu wünschen übrig.
Wie dem auch sei, hier ist meine Meinung dazu -
# Regular Expression Docs:
# Metacharacter $
# Match the end of the line (or before newline at the end)
# ** This really is misworded, it really means:
#
# In single line mode,
# In two separate matches (in global context)
# Match before and after a newline at the end of a string if there is a newline,
# OR, Match the end of the string only.
#
# In multi-line mode,
# Match before OR after a newline at the end of a line or string,
# but not both.
#
# ---------------------------------------------
# The above explanation is conditional upon the qualifying
# subexpressions surrounding the $ metachar
# ---------------------------------------------
# /$/g Single line mode:
# Matches before newline (if there is one) AND end of string (always this)
print "=== /\$/g ===============\n";
$str = "0 "; $str =~ s/$/|/g; print "'$str'\n---\n";
$str = "1 \n"; $str =~ s/$/|/g; print "'$str'\n---\n";
$str = "2 \n\n"; $str =~ s/$/|/g; print "'$str'\n---\n";
$str = "3 \n\n\n"; $str =~ s/$/|/g; print "'$str'\n---\n";
$str = "4 \n\n\n\n"; $str =~ s/$/|/g; print "'$str'\n\n";
# /$/mg Multi-line mode:
# Matches before each newline (if there is one) OR end of string (not both)
print "=== /\$/mg ===============\n";
$str = "0 "; $str =~ s/$/|/mg; print "'$str'\n---\n";
$str = "1 \n"; $str =~ s/$/|/mg; print "'$str'\n---\n";
$str = "2 \n\n"; $str =~ s/$/|/mg; print "'$str'\n---\n";
$str = "3 \n\n\n"; $str =~ s/$/|/mg; print "'$str'\n---\n";
$str = "4 \n\n\n\n"; $str =~ s/$/|/mg; print "'$str'\n\n";
# /(?=\r\n|\n|\r|$)/g Single line mode:
# Parsing the expression for //m Multi-line mode,
# Equivalent of /$/m can now be run in Single line mode:
# This is What /$/m probably really is.
# Matches before each newline (if there is one) OR end of string (not both)
print "=== /(?=\\r\\n|\\n|\\r|\$)/g ==============\n";
$str = "0 "; $str =~ s/(?=\r\n|\n|\r|$)/|/g; print "'$str'\n---\n";
$str = "1 \n"; $str =~ s/(?=\r\n|\n|\r|$)/|/g; print "'$str'\n---\n";
$str = "2 \n\n"; $str =~ s/(?=\r\n|\n|\r|$)/|/g; print "'$str'\n---\n";
$str = "3 \n\n\n"; $str =~ s/(?=\r\n|\n|\r|$)/|/g; print "'$str'\n---\n";
$str = "4 \n\n\n\n"; $str =~ s/(?=\r\n|\n|\r|$)/|/g; print "'$str'\n\n";
# /(?=\r\n|\n|\r|$)/mg Multi-line mode:
# Exact same output.
print "=== /(?=\\r\\n|\\n|\\r|\$)/mg ==============\n";
$str = "0 "; $str =~ s/(?=\r\n|\n|\r|$)/|/mg; print "'$str'\n---\n";
$str = "1 \n"; $str =~ s/(?=\r\n|\n|\r|$)/|/mg; print "'$str'\n---\n";
$str = "2 \n\n"; $str =~ s/(?=\r\n|\n|\r|$)/|/mg; print "'$str'\n---\n";
$str = "3 \n\n\n"; $str =~ s/(?=\r\n|\n|\r|$)/|/mg; print "'$str'\n---\n";
$str = "4 \n\n\n\n"; $str =~ s/(?=\r\n|\n|\r|$)/|/mg; print "'$str'\n\n";
Ausgabe >>
=== /$/g ===============
'0 |'
---
'1 |
|'
---
'2
|
|'
---
'3
|
|'
---
'4
|
|'
=== /$/mg ===============
'0 |'
---
'1 |
|'
---
'2 |
|
|'
---
'3 |
|
|
|'
---
'4 |
|
|
|
|'
=== /(?=\r\n|\n|\r|$)/g ==============
'0 |'
---
'1 |
|'
---
'2 |
|
|'
---
'3 |
|
|
|'
---
'4 |
|
|
|
|'
=== /(?=\r\n|\n|\r|$)/mg ==============
'0 |'
---
'1 |
|'
---
'2 |
|
|'
---
'3 |
|
|
|'
---
'4 |
|
|
|
|'