Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for(String word : stringList) {
- patterns.add(Pattern.compile("\b(" + word + ")\b);
- }
- for(Pattern pattern : patterns) {
- Matcher matcher = pattern.matcher(myString);
- if(matcher.matches()) {
- myString = matcher.replaceAll("String[$1]");
- }
- }
- if(hashMap.get(matcher.group(1)) == null) {
- // Can't test if is required. Used it here for safe measure.
- matcher.replaceAll("****");
- } else {
- matcher.replaceAll(hashMap.get(matcher.group(1));
- }
- Pattern pattern = Pattern.compile("\b(" + String.join("|",stringList) + ")\b");
- StringBuilder regex = new StringBuilder("\b(");
- for (String word : stringList) {
- regex.append(Pattern.quote(word));
- regex.append("|");
- }
- regex.setLength(regex.length() - 1); // delete last added "|"
- regex.append(")\b");
- Pattern pattern = Pattern.compile(regex.toString());
- Matcher m = pattern.matcher(myString);
- StringBuilder out = new StringBuilder();
- int pos = 0;
- while (m.find()) {
- out.append(myString, pos, m.start());
- String matchedWord = m.group(1);
- String replacement = matchedWord.replaceAll(".", "*");
- out.append(replacement);
- pos = m.end();
- }
- out.append(myString, pos, myString.length());
- myString = out.toString();
- \b(<word1>|<word2>|...|<wordN>)\b
- StringBuilder res = new StringBuilder("\b(");
- boolean first = true;
- for(String word : stringList) {
- if (!first) {
- res.append("|");
- } else {
- first = false;
- }
- res.append(word);
- }
- res.append(")\b");
- Pattern p = Pattern.compile(res.toString());
- public static void main(final String[] argc) throws Throwable {
- Config c;
- try(InputStream s = new FileInputStream("webapp/WEB-INF/logScanConfig.xml")) { c = (Config) JAXBContext.newInstance(Config.class).createUnmarshaller().unmarshal(s); }
- final LineContext[] a = c.rules.toArray(new LineContext[c.rules.size()]);
- final StringBuilder regex = new StringBuilder();
- for(int i=0;i<a.length;i++) {
- final LineContext e = a[i];
- final String p ="(^"+
- (e.modul == null?".*":e.modul)+" ; "+
- (e.code == null?".*":e.code )+" ; "+
- (e.mesg == null?".*":e.mesg )+" ; "+
- (e.level == null?".*":e.level)+" ; "+
- (e.regex == null?".*":e.regex)+"$)";
- if(regex.length()>0) regex.append("|");
- regex.append(p);
- }
- final Pattern pattern = Pattern.compile(regex.toString(), Pattern.DOTALL);
- final Matcher m = pattern.matcher("ISS ; 0025 ; 0008 ; I ; State Manager started");
- if(!m.matches()) {
- System.out.println("Not Found");
- } else {
- System.out.println("GroupCount: "+m.groupCount()+" A["+a.length+"]");
- for(int i=1;i<=m.groupCount();i++) {
- if(null != m.group(i)) {
- System.out.println("GROUP["+(i-1)+"]: "+m.group(i));
- System.out.println(a[i-1]);
- }
- }
- }
- }
- }
- <logScanConfig user="private.1" pass="private.2">
- <logUrls>
- <e>http://private.3:80/fetch/log</e>
- <e>http://private.4:80/fetch/log</e>
- <e>http://private.5:80/fetch/log</e>
- </logUrls>
- <rules>
- <e backlogTime='600' minCount='0' maxCount='0' modul='ART' code='0114' mesg='1007' level='E'><regex>.*ORA-27101: shared memory realm does not exist.*</regex></e>
- <e backlogTime='600' minCount='0' maxCount='0' modul='ISS' code='0098' level='E'><regex>Insufficient memory .*</regex></e>
- </rules>
- </logScanConfig>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement