<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>RegEx on Dem hoergen Blog</title>
    <link>https://hyperblog.de/hoergen/tags/regex/</link>
    <description>Recent content in RegEx on Dem hoergen Blog</description>
    <image>
      <title>Dem hoergen Blog</title>
      <url>https://hyperblog.de/hoergen/favicon.svg</url>
      <link>https://hyperblog.de/hoergen/favicon.svg</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sun, 24 Dec 2023 01:10:32 +0200</lastBuildDate>
    <atom:link href="https://hyperblog.de/hoergen/tags/regex/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>LibreOffice: Suchen&amp;amp;Ersetzen - Mit RegEx Hashtags markieren</title>
      <link>https://hyperblog.de/hoergen/posts/2023/2023-12-24-libreoffice-suchenersetzen-mit-regex-hashtags-markieren/</link>
      <pubDate>Sun, 24 Dec 2023 01:10:32 +0200</pubDate>
      <guid>https://hyperblog.de/hoergen/posts/2023/2023-12-24-libreoffice-suchenersetzen-mit-regex-hashtags-markieren/</guid>
      <description>&lt;p&gt;Da ich meine Notizen nicht direkt in LibreOffice schreibe und ich gerne Hashtags nutze und ich diese etwas anders formatieren muss, habe ich nach einer Möglichkeit gesucht, wie ich in LibreOffice diese suchen und markieren kann, so dass ich sie mit einer Formatvorlage versehen kann. Aber alles der Reihe nach.&lt;/p&gt;
&lt;p&gt;Ich schreibe meine Texte normalerweise in Markdown. Weil das extrem schnell, mit jedem Editor und auf jedem Gerät dieser Erde, auf dem Texte eingeben werden können funktioniert. Markdown ist im Prinzip nur Text. Wer mehr darüber wissen will, findet hier in der &lt;a href=&#34;https://de.wikipedia.org/wiki/Markdown&#34;&gt;Wikipedia&lt;/a&gt; schon mal einen guten Einstieg.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vim - Suchen &amp; Ersetzen - RegEx</title>
      <link>https://hyperblog.de/hoergen/posts/2023/2023-08-17-suchen-ersetzen-regulaere-ausdruecke-vim/</link>
      <pubDate>Thu, 17 Aug 2023 13:45:11 +0200</pubDate>
      <guid>https://hyperblog.de/hoergen/posts/2023/2023-08-17-suchen-ersetzen-regulaere-ausdruecke-vim/</guid>
      <description>&lt;p&gt;Reguläre Ausdrücke (RegEx) sind DER Shit, wenn es darum geht extrem schnelle und auch sehr komplexe Dinge mit Texten bzw Strings oder einfach generell bei Suchen zu veranstalten.&lt;/p&gt;
&lt;p&gt;Ein Anwendungsfall kommt immer wieder vor, nämlich das Suchen&amp;amp;Ersetzen.&lt;/p&gt;
&lt;p&gt;Das Muster sieht so aus&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:[range] s / [pattern] / [string] / [flags] [count]&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;range&#34;&gt;[range]&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;bei range steht meist ein Prozentzeichen &lt;code&gt;%&lt;/code&gt; das für den gesamten Text aka der gesamte Datei Inhalt.&lt;/li&gt;
&lt;li&gt;hier können auch &lt;code&gt;1,$&lt;/code&gt; = erste Zeile, erstes Zeichen bis letzte Zeile, letztes Zeichen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.,$&lt;/code&gt; heisst von der aktuellen Zeile bis zum Ende&lt;/li&gt;
&lt;li&gt;Von der aktuellen Zeile für weitere 10 Zeilen &lt;code&gt;:.,.+10&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{Nummer}&lt;/code&gt; - in Zeile Nummer sowieso z.B. &lt;code&gt;:14&lt;/code&gt; Zeile 14&lt;/li&gt;
&lt;li&gt;Die Übersicht der schier unendlichen Bereichsangaben bekommst du, wenn du vim aufrufst und dann &lt;code&gt;:h range&lt;/code&gt; eingibst&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;s-substitute&#34;&gt;s (substitute)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Zwischen dem Range und dem &lt;code&gt;s&lt;/code&gt; darf kein Leerzeichen sein! (häufiger Fehler)&lt;/li&gt;
&lt;li&gt;Substitute ist die Suchen&amp;amp;Ersetzen Funktion. Wichtig zu wissen ist, dass alle Zeichen, die nicht in a-z und A-Z sind, müssen mit einem vorangestelltem Backslash &lt;code&gt;\&lt;/code&gt; &amp;ldquo;escaped&amp;rdquo; werden.&lt;/li&gt;
&lt;li&gt;Also Zahlen, Punkte, Klammern und Sonderzeichen mit einem Backslash &lt;code&gt;\&lt;/code&gt; escaped werden.&lt;/li&gt;
&lt;li&gt;Ein Backslash wird dann natürlich auch mit einem Backslash escaped &lt;code&gt;\\&lt;/code&gt;. Und ein Slash im Suchstring wird natürlich auch mit einem Backslash escaped &lt;code&gt;\/&lt;/code&gt; . Auch ein Leerzeichen bzw Blank wird mit einem Backslash escaped.&lt;/li&gt;
&lt;li&gt;Der Grund dafür ist, dass viele dieser Zeichen selbst eine Funktion für die Suche darstellen. Und damit da keine Verwechselung entsteht muss extra &amp;ldquo;escaped&amp;rdquo; werden.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pattern&#34;&gt;[pattern]&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Pattern ist der zu suchende Text&lt;/li&gt;
&lt;li&gt;Mit einem einleitenden &lt;code&gt;\c&lt;/code&gt;TEXT wird Groß- und Kleinschreibung bei TEXT ignoriert&lt;/li&gt;
&lt;li&gt;Mit einem &lt;code&gt;\v&lt;/code&gt; (magic mode) müssen Zeichen wie ein Leerzeichen oder Gänsefüßchen nicht extra escaped werden&lt;/li&gt;
&lt;li&gt;In einem Pattern können auch wiederum &lt;a href=&#34;https://vimdoc.sourceforge.net/htmldoc/pattern.html#pattern&#34;&gt;Pattern-Funktionen&lt;/a&gt; eingefügt werden, wie z.B. ab dem 5. Zeichen (spalte/column) &lt;code&gt;%5c&lt;/code&gt; oder bis zum 5. Zeichen &lt;code&gt;%&amp;gt;5c&lt;/code&gt; und viele weitere.&lt;/li&gt;
&lt;li&gt;in vim &lt;code&gt;:help pattern&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;string&#34;&gt;[string]&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;String ist der Text, der das gesuchte Pattern ersetzt werden soll.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;flags&#34;&gt;[flags]&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;g (global)&lt;/code&gt; wiederholt das Suchen&amp;amp;Ersetzen, bis zum Ende des Textes. Wird g nicht angegeben, wird nach dem ersten Suchtreffer aufgehört.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;c (confirm)&lt;/code&gt; zum Bestätigen des Ersetzens&lt;/li&gt;
&lt;li&gt;&lt;code&gt;i (ignore)&lt;/code&gt; um Groß/Kleinschreibung zu ignorieren&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;count&#34;&gt;[count]&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;der Parameter count wird bei Bedarf in einer positiven ganzen Zahl wie z.B. 5 angegeben. Er wirkt sich auf das Suchen&amp;amp;Ersetzen so aus, dass z.B.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;%s/blah/blubb/g 5&lt;/code&gt; - vom Textanfang die ersten 5 Zeilen bearbeitet werden&lt;/li&gt;
&lt;li&gt;&lt;code&gt;10,$s/blah/blubb/g 5&lt;/code&gt; - ab Zeile 10, die Zeilen 10, 11, 12, 13, 14, also insgesamt 5 Zeilen bearbeitet werden.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Slash &lt;code&gt;/&lt;/code&gt; - das Slash &amp;ldquo;/&amp;rdquo; trennt die verschiedenen Parameter voneinander.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
