[JAVA] So markieren Sie Suchbegriffe unabhängig von Groß- und Kleinschreibung und ohne das Suchquellwort zu ändern

Eines Tages wurde ich von einer großartigen Person gebeten, das Schlüsselwort unabhängig von der Größe zu markieren und das Schlüsselwort der Suchquelle nicht zu ändern und es anzuzeigen. Bitte Akeptiere es.

Zweck

Angenommen, data enthält den Text der Suchquelle. Andererseits besteht der Zweck dieser Zeit darin, die Zeichenfolge so zurückzugeben, als ob sie bei der Suche mit "Schlüsselwort" unabhängig von der Größe markiert wäre.

Ergebnis

  1. Beurteilen Sie das Schlüsselwort vor (? I) unabhängig von der Größe (i steht für Insentive)
  2. Fügen Sie das Schlüsselwort in () ein, um eine Gruppe zu bilden
  3. Fügen Sie den zu ändernden Teil hinzu + $ 1 (Übrigens, wenn es zwei Gruppen gibt, $ 1 $ 2)

↓ ↓ Es sieht so aus, wenn es in Code ↓ ↓ geschrieben ist

String keyword = "java";
String data = "Java java javaJava";

// (?i)Ist nicht zwischen Groß- und Kleinschreibung zu unterscheiden
//Hit Charaktere()Gruppiere nach
data = data.replaceAll("((?i)" + Pattern.quote(keyword) + ")", "<mark>$1</mark>");

// <mark>Java</mark> <mark>java</mark> <mark>java</mark><mark>Java</mark>
System.out.println(data);

Gist

Zum Ergebnis

Mir wurde gesagt, dass es unangenehm wäre, wenn ich es mit einem Gorigori machen würde. .. .. Lol (ich habe mich gefragt, ob es eine Weile war)

Schlechtes Beispiel


Pattern p = Pattern.compile(keyword, Pattern.CASE_INSENSITIVE).matcher(data);
while(p.find()) {
  int start = p.start();
  int end   = p.end();
  ~Berechnen Sie aus den gefundenen Standortinformationen und geben Sie das Gorigori-Tag ein~
}

Impressionen

Ich denke, ich konnte es ziemlich ordentlich und vollständig umsetzen. Ich möchte nach etwas suchen und die Ergebnisse markieren und anzeigen! Wie man schreibt, ist perfekt für die Verarbeitung. Dies ist nur ein Beispiel. Verwenden Sie es daher als Referenz.

Referenzseite

http://a4dosanddos.hatenablog.com/entry/2016/04/06/002657

Recommended Posts

So markieren Sie Suchbegriffe unabhängig von Groß- und Kleinschreibung und ohne das Suchquellwort zu ändern
[Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um
[Java-Verbesserungsfall] Wie man die Grenze des Selbststudiums und darüber hinaus erreicht
[Java] So erhalten Sie die URL der Übergangsquelle
Hinzufügen von Elementen ohne Angabe der Länge des Arrays
So ändern Sie den Inhalt der JAR-Datei, ohne sie zu dekomprimieren
So überprüfen Sie die Erweiterung und Größe der hochgeladenen Dateien
[Docker] So sichern und wiederherstellen Sie DB-Daten der Rails-Anwendung auf Docker-Compose [MySQL]
[Swift5] So erhalten Sie ein Array und eine Reihe von Unterschieden zwischen Arrays
So legen Sie die IP-Adresse und den Hostnamen von CentOS8 fest
[jOOQ] Wie in der WHERE / AND / OR-Klausel WANN FALLEN
So bestimmen Sie die Anzahl der Parallelen
So richten Sie kapt ein und verwenden es
So sortieren Sie eine Liste von SelectItems
Wie man die Zehner und Einsen findet
Unterschied zwischen Java, C # und JavaScript (wie man den Grad der Fettleibigkeit findet)
So finden Sie die Ursache des Ruby-Fehlers
Passen Sie an, wie der Inhalt von Recyclerview aufgeteilt wird
Ausgabe der Verwendung der Slice-Methode
So richten Sie jEnv (Mac) ein und bedienen es
So zeigen Sie das Ergebnis des Ausfüllens des Formulars an
So finden Sie die Gesamtpunktzahl und die Durchschnittspunktzahl
[Java] Memo zum Schreiben der Quelle
So legen Sie ein Wiederholungslimit für Sidekiq fest und benachrichtigen tote Warteschlangen mit Slack
[Swift5] Wie man die zweiten oder dritten Minderheitspunkte rundet, rundet oder aufrundet