1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.dexterim.ui;
20
21 import java.util.regex.Matcher;
22 import java.util.regex.Pattern;
23
24
25 /***
26 * @author christoph
27 *
28 */
29 public class RegularExpressionFilter implements FilterMask {
30 private Pattern pattern = null;
31
32 private String regex;
33
34 public RegularExpressionFilter(String regex) {
35 this.regex = regex;
36
37 updatePattern(this.regex);
38 }
39
40 public RegularExpressionFilter() {
41
42 }
43
44 /***
45 * @see net.sf.dexterim.ui.FilterMask#filter(java.lang.String)
46 */
47 public String filter(String text) {
48 StringBuffer returnValue = new StringBuffer();
49
50 if (pattern != null) {
51 Matcher m = pattern.matcher(text);
52
53 while (m.find()) {
54 returnValue.append(text.substring(m.start(), m.end()));
55 }
56 }
57
58 return returnValue.toString();
59 }
60
61 /***
62 * @return Returns the regex.
63 */
64 public String getRegex() {
65 return regex;
66 }
67
68 /***
69 * @param regex The regex to set.
70 */
71 public void setRegex(String regex) {
72 this.regex = regex;
73
74 updatePattern(this.regex);
75 }
76
77 protected void updatePattern(String regex) {
78 this.pattern = Pattern.compile(regex);
79 }
80
81 public String toString() {
82 return "Regex " + regex;
83 }
84 }