String ausschließen bei Regex
Wie schließt man ein Zeichenkette bei einem Regex?
Input String:
Gewünschte Substring:
Wie ich versucht habe:
Eigentlich kann man durch [^0-9]* beliebige Zeichenkette ohne Zahl finden. Wie das hier (Zeichen ausschließen) will ich String ausschließen. zB. "BeispielString" trifft zu, "Beispiel2String" trifft nicht zu, "beispielabc" trifft nicht zu bei [^0-9(abc)].
Ich muss dieses Problemm nur mit regex lösen.
Hilf mir bitte
Danke voraus
Input String:
<div>htmlCodes<div class=\"entry\"> bla bla <htmlCodes>/fda </htmlCodes> / bla bla </div>htmlCodes</div>
<div class=\"entry\"> bla bla <htmlCodes>/fda </htmlCodes> / bla bla </div>
Wie ich versucht habe:
String regex = "<div class=\"entry\">(.*)</div>";
String source ="<div>htmlCodes<div class=\"entry\"> bla bla <htmlCodes> bla bla </div>htmlCodes</div>";
Matcher m = Pattern.compile(regex).matcher(source);
while (m.find()) {
System.out.println("Matched group: "+m.group(1));
}
Ich muss dieses Problemm nur mit regex lösen.
Hilf mir bitte
Danke voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 175579
Url: https://administrator.de/contentid/175579
Ausgedruckt am: 24.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
Also in regex gibt es eine Stringklasse, welche dies erlaubt:
Der erste Ausdrück liefert true und der zweite false zurück.
Eine andere Variante ist folgende: Übergibt man der Pattern ein String wie "(BeispielString)", dann liefert m.find() den Index des ersten Buchstaben zurück, wenn der Substring im String gefunden wird, ansonsten nichts. Ein Beispielprogramm der dies tut:
Liefert beim Aufruf mit java Regex2 "BeispielString" "Ist BeispielString enthalten?" eine 4 zurück, ansonsten nichts. Vorsicht: Mit obigem compile wird auch ein "BeispielStringBeispiel" gefunden. Evtl. hilft hier ein zusätzliches [\s].
Das obige Programm als Methode umzubauen, welche je nachdem true oder false liefert dürfte nicht schwer sein.
String s1 = "BeispielString";
String s2 = "Beispiel2String";
System.out.printf("%b", s1.matches("BeispielString"));
System.out.printf("%b", s2.matches("BeispielString"));
Eine andere Variante ist folgende: Übergibt man der Pattern ein String wie "(BeispielString)", dann liefert m.find() den Index des ersten Buchstaben zurück, wenn der Substring im String gefunden wird, ansonsten nichts. Ein Beispielprogramm der dies tut:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Regex2 {
public static void main(String args) {
Pattern p = Pattern.compile(args);
Matcher m = p.matcher(args[1]);
while (m.find()) {
System.out.print(m.start() + " ");
}
}
}
Liefert beim Aufruf mit java Regex2 "BeispielString" "Ist BeispielString enthalten?" eine 4 zurück, ansonsten nichts. Vorsicht: Mit obigem compile wird auch ein "BeispielStringBeispiel" gefunden. Evtl. hilft hier ein zusätzliches [\s].
Das obige Programm als Methode umzubauen, welche je nachdem true oder false liefert dürfte nicht schwer sein.