Advertisement
Guest User

Untitled

a guest
Oct 11th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. for(String word : stringList) {
  2. patterns.add(Pattern.compile("\b(" + word + ")\b);
  3. }
  4.  
  5. for(Pattern pattern : patterns) {
  6. Matcher matcher = pattern.matcher(myString);
  7. if(matcher.matches()) {
  8. myString = matcher.replaceAll("String[$1]");
  9. }
  10. }
  11.  
  12. if(hashMap.get(matcher.group(1)) == null) {
  13. // Can't test if is required. Used it here for safe measure.
  14. matcher.replaceAll("****");
  15. } else {
  16. matcher.replaceAll(hashMap.get(matcher.group(1));
  17. }
  18.  
  19. Pattern pattern = Pattern.compile("\b(" + String.join("|",stringList) + ")\b");
  20.  
  21. StringBuilder regex = new StringBuilder("\b(");
  22. for (String word : stringList) {
  23. regex.append(Pattern.quote(word));
  24. regex.append("|");
  25. }
  26. regex.setLength(regex.length() - 1); // delete last added "|"
  27. regex.append(")\b");
  28. Pattern pattern = Pattern.compile(regex.toString());
  29.  
  30. Matcher m = pattern.matcher(myString);
  31. StringBuilder out = new StringBuilder();
  32. int pos = 0;
  33. while (m.find()) {
  34. out.append(myString, pos, m.start());
  35. String matchedWord = m.group(1);
  36. String replacement = matchedWord.replaceAll(".", "*");
  37. out.append(replacement);
  38. pos = m.end();
  39. }
  40. out.append(myString, pos, myString.length());
  41. myString = out.toString();
  42.  
  43. \b(<word1>|<word2>|...|<wordN>)\b
  44.  
  45. StringBuilder res = new StringBuilder("\b(");
  46. boolean first = true;
  47. for(String word : stringList) {
  48. if (!first) {
  49. res.append("|");
  50. } else {
  51. first = false;
  52. }
  53. res.append(word);
  54. }
  55. res.append(")\b");
  56. Pattern p = Pattern.compile(res.toString());
  57.  
  58. public static void main(final String[] argc) throws Throwable {
  59. Config c;
  60. try(InputStream s = new FileInputStream("webapp/WEB-INF/logScanConfig.xml")) { c = (Config) JAXBContext.newInstance(Config.class).createUnmarshaller().unmarshal(s); }
  61. final LineContext[] a = c.rules.toArray(new LineContext[c.rules.size()]);
  62. final StringBuilder regex = new StringBuilder();
  63. for(int i=0;i<a.length;i++) {
  64. final LineContext e = a[i];
  65. final String p ="(^"+
  66. (e.modul == null?".*":e.modul)+" ; "+
  67. (e.code == null?".*":e.code )+" ; "+
  68. (e.mesg == null?".*":e.mesg )+" ; "+
  69. (e.level == null?".*":e.level)+" ; "+
  70. (e.regex == null?".*":e.regex)+"$)";
  71. if(regex.length()>0) regex.append("|");
  72. regex.append(p);
  73. }
  74.  
  75. final Pattern pattern = Pattern.compile(regex.toString(), Pattern.DOTALL);
  76. final Matcher m = pattern.matcher("ISS ; 0025 ; 0008 ; I ; State Manager started");
  77. if(!m.matches()) {
  78. System.out.println("Not Found");
  79. } else {
  80. System.out.println("GroupCount: "+m.groupCount()+" A["+a.length+"]");
  81. for(int i=1;i<=m.groupCount();i++) {
  82. if(null != m.group(i)) {
  83. System.out.println("GROUP["+(i-1)+"]: "+m.group(i));
  84. System.out.println(a[i-1]);
  85. }
  86. }
  87. }
  88. }
  89. }
  90.  
  91. <logScanConfig user="private.1" pass="private.2">
  92. <logUrls>
  93. <e>http://private.3:80/fetch/log</e>
  94. <e>http://private.4:80/fetch/log</e>
  95. <e>http://private.5:80/fetch/log</e>
  96. </logUrls>
  97. <rules>
  98. <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>
  99. <e backlogTime='600' minCount='0' maxCount='0' modul='ISS' code='0098' level='E'><regex>Insufficient memory .*</regex></e>
  100. </rules>
  101. </logScanConfig>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement