我有一个包含以下格式的搜索字符串:正则表达式模式
搜索字符串
111651311
111651303
4111650024
4360280062
20167400
它需要与数字的顺序相匹配低于
001111651311000
001111651303000
054111650024000
054360280062000
201674000000000
请注意搜索字符串已在每边添加了附加数字。 我在java中尝试过下面的正则表达式来匹配搜索字符串,但它只适用于一些。
Pattern pattern = Pattern.compile("([0-9])\1*"+c4MIDVal+"([0-9])\1*");
有什么建议吗?
更新
加我下面使用可能会提供什么我试图做
代码段
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] );
}
}
'indexOf'不足够吗? – Berger
或'contains'。吻。 – NickJ
我已经包含了我的代码,请检查 – dimas