模式匹配Word文档下载推荐.docx
- 文档编号:16737088
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:19
- 大小:47.33KB
模式匹配Word文档下载推荐.docx
《模式匹配Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《模式匹配Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
returni-m;
return0;
>
猎头职位:
上海:
上海,北京:
招聘java开发工程师
相关文章:
∙Java组合数算法
∙面试题目
∙计算四则混合运算的计算器
推荐圈子:
flex
更多相关推荐
ps:
09年网上掀起了敏感字词过滤热,一时想到就动手干起来了,此算法借鉴经典的WM算法改写而成,不足之处还需优化和改进,测试时只对屏蔽的illegalkeywords进行了个数统计!
有需要测试用的,请在最后自己下载这两个肮脏的文件,请勿在JE上到处传播,大家都是文明人哈!
1.MutiPatternParser.java
Java代码
1.package
com.mutiplepatternmatch;
2.import
java.util.Vector;
3./**
4.
*
5.
*
@author
Daniel
6.
7.
*/
8.public
class
MutiPatternParser
{
9.
public
MutiPatternParser()
10.
}
11.
private
boolean
initFlag
=
false;
12.
UnionPatternSet
unionPatternSet
new
UnionPatternSet();
13.
int
maxIndex
(int)
java.lang.Math.pow(2,
16);
14.
shiftTable[]
int[maxIndex];
15.
Vector<
AtomicPattern>
hashTable[]
Vector[maxIndex];
16.
tmpUnionPatternSet
17.
addFilterKeyWord(String
keyWord,
level)
18.
if
(initFlag
==
true)
19.
return
20.
UnionPattern
unionPattern
UnionPattern();
21.
String
[]strArray
keyWord.split("
"
);
22.
for
(int
i
0;
<
strArray.length;
i++)
23.
Pattern
pattern
Pattern(strArray[i]);
24.
AtomicPattern
atomicPattern
AtomicPattern(pattern);
25.
unionPattern.addNewAtomicPattrn(atomicPattern);
26.
unionPattern.setLevel(level);
27.
atomicPattern.setBelongUnionPattern(unionPattern);
28.
29.
tmpUnionPatternSet.addNewUnionPattrn(unionPattern);
30.
true;
31.
32.
isValidChar(char
ch)
33.
((ch
'
0'
ch
9'
)
||
(ch
A'
Z'
)
34.
a'
z'
))
35.
36.
0x4e00
0x7fff)
0x8000
0x952f))
37.
//简体中文汉字编码
38.
39.
40.
parse(String
content,
Integer>
levelSet)
41.
false)
42.
init();
43.
aps
();
44.
preContent
preConvert(content);
45.
preContent.length();
46.
char
checkChar
preContent.charAt(i);
47.
(shiftTable[checkChar]
0)
48.
tmpAps
49.
findMathAps(preContent.substring(0,
+
1),
50.
hashTable[checkChar]);
51.
aps.addAll(tmpAps);
52.
i++;
53.
}
else
54.
shiftTable[checkChar];
55.
56.
parseAtomicPatternSet(aps,
levelSet);
57.
content;
58.
59.
void
parseAtomicPatternSet(Vector<
aps,
60.
61.
while
(aps.size()
62.
ap
aps.get(0);
63.
up
ap.belongUnionPattern;
64.
(up.isIncludeAllAp(aps)
true)
65.
levelSet.add(new
Integer(up.getLevel()));
66.
67.
aps.remove(0);
68.
69.
70.
findMathAps(String
src,
71.
destAps)
72.
73.
destAps.size();
74.
destAps.get(i);
75.
(ap.findMatchInString(src)
76.
77.
aps.add(ap);
78.
79.
aps;
80.
81.
preConvert(String
content)
82.
retStr
String();
83.
content.length();
84.
content.charAt(i);
85.
(this.isValidChar(ch)
86.
ch;
87.
88.
89.
retStr;
90.
91.
//
shift
table
and
hash
of
initialize
92.
init()
93.
94.
maxIndex;
i++)
95.
hashTable[i]
96.
shiftTableInit();
97.
hashTableInit();
98.
99.
clear()
100.
tmpUnionPatternSet.clear();
101.
102.
103.
shiftTableInit()
104.
105.
shiftTable[i]
2;
106.
UnionPattern>
upSet
tmpUnionPatternSet.getSet();
107.
upSet.size();
108.
apSet
upSet.get(i).getSet();
109.
j
apSet.size();
j++)
110.
apSet.get(j);
111.
ap.getPattern();
112.
(shiftTable[pattern.charAtEnd
(1)]
!
0)
113.
shiftTable[pattern.charAtEnd
(1)]
1;
114.
(shiftTable[pattern.charAtEnd(0)]
115.
shiftTable[pattern.charAtEnd(0)]
116.
117.
118.
119.
hashTableInit()
120.
121.
122.
123.
124.
125.
126.
(pattern.charAtEnd(0)
127.
hashTable[pattern.charAtEnd(0)].add(ap);
128.
129.
130.
131.
132.}
133.class
{
string
134.
Pattern(String
str)
135.
this.str
str;
136.
137.
charAtEnd(int
index)
138.
(str.length()
139.
str.charAt(str.length()
-
index
1);
140.
141.
142.
143.
144.
getStr()
145.
146.
};
147.}
148.class
149.
findMatchInString(String
150.
(this.pattern.str.length()
str.length())
151.
152.
beginIndex
str.length()
this.pattern.str.length();
153.
eqaulLengthStr
str.substring(beginIndex);
154.
(this.pattern.str.equalsIgnoreCase(eqaulLengthStr))
155.
156.
157.
158.
AtomicPattern(Pattern
pattern)
159.
this.pattern
pattern;
160.
161.
162.
belongUnionPattern;
163.
getBelongUnionPattern()
164.
165.
166.
setBelongUnionPattern(UnionPattern
belongUnionPattern)
167.
this.belongUnionPattern
168.
169.
getPattern()
170.
171.
172.
setPattern(Pattern
173.
174.
175.}
176.class
SameAtomicPatternSet
177.
SameAtomicPatternSet()
178.
SAPS
179.
180.
SAPS;
181.}
182.class
union
183.
UnionPattern()
184.
this.apSet
185.
186.
apSet;
187.
addNewAtomicPattrn(AtomicPattern
ap)
188.
this.apSet.add(ap);
189.
190.
getSet()
191.
192.
193.
isIncludeAllAp(Vector<
inAps)
194.
(apSet.size()
inAps.size())
195.
196.
197.
apSet.get(i);
198.
(isInAps(ap,
199.
200.
201.
202.
203.
isInAps(AtomicPattern
ap,
204.
inAps.size();
205.
destAp
inAps.get(i);
206.
(ap.getPattern().str.equalsIgnoreCase(destAp.getPattern().str)
207.
208.
209.
210.
211.
setLevel(int
212.
this.level
level;
213.
214.
getLevel()
215.
this.level;
216.
217.
218.}
219.class
string
set
220.
UnionPatternSet()
221.
this.unionPatternSet
222.
223.
addNewUnionPattrn(UnionPattern
up)
224.
this.unionPatternSet.add(up);
225.
226.
unionPatternSet;
227.
228.
retu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模式 匹配