Ich habe eine Suche String, der das Format unten enthält:RegexMuster für String mit mehreren vorderen und hinteren Einsen und Nullen
Search String
111651311
111651303
4111650024
4360280062
20167400
Es muss mit Zahlenfolge gelegt werden, unter
001111651311000
001111651303000
054111650024000
054360280062000
201674000000000
Bitte beachten Sie, dass die Suchzeichenfolgen mit zusätzlichen Nummern auf jeder Seite hinzugefügt wurden. Ich habe versucht, die Regex unten in Java, um die Suchzeichenfolgen übereinzustimmen, aber es funktioniert nur für einige.
Pattern pattern = Pattern.compile("([0-9])\1*"+c4MIDVal+"([0-9])\1*");
Irgendwelche Ratschläge?
aktualisieren
hinzugefügt der Code, den ich unten verwendet könnte etwas Klarheit darüber geben, was ich versuche,
Code Snippet
public void compare(String fileNameAdded, String fileNameToBeAdded){
List<String> midListAdded = readMID.readMIDAdded(fileNameAdded);
HashMap<String, String> midPairsToBeAdded = readMID.readMIDToBeAdded(fileNameToBeAdded);
List <String []> midCaptured = new ArrayList<String[]>();
for (Map.Entry<String, String> entry: midPairsToBeAdded.entrySet()){
String c4StoreKey = entry.getKey();
String c4MIDVal = entry.getValue();
Pattern pattern = Pattern.compile("([0-9]?)\\1*"+c4MIDVal+"([0-9]?)\\2*");
for (String mid : midListAdded){
Matcher match = pattern.matcher(mid);
// logger.info("Match Configured MID :: "+ mid+ " with Pattern "+"\\*"+match.toString()+"\\*");
if (match.find()){
midCaptured.add(new String []{ c4StoreKey +"-"+c4MIDVal, mid});
}
}
}
logger.info(midCaptured.size()+ " List of Configured MIDs ");
for (String [] entry: midCaptured){
logger.info(entry[0]+ "- "+entry[1] );
}
}
Wäre 'indexOf' nicht ausreichend? – Berger
oder 'enthält'. KUSS. – NickJ
Ich habe meinen Code eingefügt bitte überprüfen – dimas