charFormats = Guavas.newArrayList();
+ if(context.ignoreEnglishStyle()) {
+ charFormats.add(Instances.singleton(IgnoreEnglishStyleFormat.class));
+ }
if(context.ignoreCase()) {
charFormats.add(Instances.singleton(IgnoreCaseCharFormat.class));
-
}
if(context.ignoreWidth()) {
charFormats.add(Instances.singleton(IgnoreWidthCharFormat.class));
@@ -31,6 +33,9 @@ public class CharFormatChain implements ICharFormat {
if(context.ignoreNumStyle()) {
charFormats.add(Instances.singleton(IgnoreNumStyleCharFormat.class));
}
+ if(context.ignoreChineseStyle()) {
+ charFormats.add(Instances.singleton(IgnoreChineseStyleFormat.class));
+ }
// 循环执行
for(ICharFormat charFormat : charFormats) {
diff --git a/src/main/java/com/github/houbb/sensitive/word/support/format/IgnoreChineseStyleFormat.java b/src/main/java/com/github/houbb/sensitive/word/support/format/IgnoreChineseStyleFormat.java
new file mode 100644
index 0000000..60efcba
--- /dev/null
+++ b/src/main/java/com/github/houbb/sensitive/word/support/format/IgnoreChineseStyleFormat.java
@@ -0,0 +1,24 @@
+package com.github.houbb.sensitive.word.support.format;
+
+import com.github.houbb.heaven.annotation.ThreadSafe;
+import com.github.houbb.opencc4j.core.impl.ZhConvertBootstrap;
+import com.github.houbb.opencc4j.support.segment.impl.CharSegment;
+import com.github.houbb.sensitive.word.api.ICharFormat;
+import com.github.houbb.sensitive.word.api.IWordContext;
+
+/**
+ * 忽略大小写
+ * @author binbin.hou
+ * @since 0.0.5
+ */
+@ThreadSafe
+public class IgnoreChineseStyleFormat implements ICharFormat {
+
+ @Override
+ public char format(char original, IWordContext context) {
+ String string = String.valueOf(original);
+ String simple = ZhConvertBootstrap.newInstance(new CharSegment()).toSimple(string);
+ return simple.charAt(0);
+ }
+
+}
diff --git a/src/main/java/com/github/houbb/sensitive/word/support/format/IgnoreEnglishStyleFormat.java b/src/main/java/com/github/houbb/sensitive/word/support/format/IgnoreEnglishStyleFormat.java
new file mode 100644
index 0000000..e132254
--- /dev/null
+++ b/src/main/java/com/github/houbb/sensitive/word/support/format/IgnoreEnglishStyleFormat.java
@@ -0,0 +1,21 @@
+package com.github.houbb.sensitive.word.support.format;
+
+import com.github.houbb.heaven.annotation.ThreadSafe;
+import com.github.houbb.sensitive.word.api.ICharFormat;
+import com.github.houbb.sensitive.word.api.IWordContext;
+import com.github.houbb.sensitive.word.utils.CharUtils;
+
+/**
+ * 忽略英文的各种格式
+ * @author binbin.hou
+ * @since 0.0.6
+ */
+@ThreadSafe
+public class IgnoreEnglishStyleFormat implements ICharFormat {
+
+ @Override
+ public char format(char original, IWordContext context) {
+ return CharUtils.getMappingChar(original);
+ }
+
+}
diff --git a/src/main/resources/dict.txt b/src/main/resources/dict.txt
index 7967e15..09d6466 100644
--- a/src/main/resources/dict.txt
+++ b/src/main/resources/dict.txt
@@ -3315,7 +3315,6 @@ jz女模
j巴
j总病危
j糸己元
-k
k2精炼粉批发代理
k3精炼粉批发代理
k456⒓2
@@ -10785,7 +10784,6 @@ z以留吧以其以武
书办理
书记
书记群p艳照
-买
买1送1
买2送1
买54手枪
@@ -11939,7 +11937,6 @@ z以留吧以其以武
仁科百华bt种子
仁科百华种子
仁青加
-仆
仆不怕饮
仆街
仇保兴
@@ -20979,7 +20976,6 @@ z以留吧以其以武
力满库
力霸
力骗中央
-办
办1个会繁荣1座城市
办46级证
办仿真2代身份证
@@ -21436,7 +21432,6 @@ z以留吧以其以武
办高仿证件
办高仿证件qq
办高利贷
-功
功劳不亚于杨利伟
功友
功夫online
@@ -21520,14 +21515,12 @@ z以留吧以其以武
加非猫现实世界历险
加非猫现实世界历险记
加骚妹qq
-务
务员答案
务员考试
劣乐
劣等人
劣等民族
劣质蜜饯加工
-动
动5感地带
动乱
动向
@@ -21783,7 +21776,6 @@ z以留吧以其以武
北野光种子
北韩
北高联
-区
区的雷人
医世无忧
医保用户数据
@@ -22059,7 +22051,6 @@ z以留吧以其以武
单身白领油城姻缘
单身白领聚会交友
单身群
-卖
卖1代个人身份证
卖1代假冒身份证
卖1代假身份证
@@ -23249,7 +23240,6 @@ z以留吧以其以武
可过机假钱qq
可随意改变称重结果
可非
-台
台du
台wan
台军
@@ -23811,7 +23801,6 @@ z以留吧以其以武
吡利啶
吡啶胺
吧灵吧灵7灵露灵
-吨
含乳
含住我的小鸡鸡
含住肉棒上下使劲吸吮起来
@@ -26113,7 +26102,6 @@ z以留吧以其以武
大龟头顶住子宫深处
大龟头顶住花心
大龟头顶紧子宫口
-天
天上人间博彩网站
天上导弹乱
天上掉下个打工妹
@@ -30327,7 +30315,6 @@ z以留吧以其以武
弄儿的后宫免费阅读
弄花香满衣
式粉推
-弓
弓nu
弓nu买卖
弓nu供应
@@ -32855,7 +32842,6 @@ z以留吧以其以武
户外砍刀销售
户外砍刀销售qq
户外露胸舔鲍
-房
房主信息出售qq
房主信息销售
房主信息销售qq
@@ -39771,7 +39757,6 @@ z以留吧以其以武
末裔之殇
末裔之殇txt
末路惊情
-本
本人代购
本人何美婷想寻1位真诚男士
本人出租
@@ -41292,7 +41277,6 @@ z以留吧以其以武
款到发货
歇b
歇逼
-歌
歌功颂德
歌华
歌女也把将星扛
@@ -45304,7 +45288,6 @@ z以留吧以其以武
滕任
滕文生
滕武
-滚
滚圆大乳
滚床单
滚滚球
@@ -45802,7 +45785,6 @@ z以留吧以其以武
灼灼桃花十里取1朵放在心上足矣你能陪我会聊天吗
灼灼桃花十里取1朵放在心上足矣这是我薇信
灼热的龟头紧顶住柔嫩的菊花口
-灾
灾区
炎症治疗
炒作公司
@@ -46747,7 +46729,6 @@ z以留吧以其以武
狩猎气狗专卖qq
狩猎汽动狗出售
狩猎用弩
-独
独占princesscollection若叶
独占动画女热大6file2
独占动画潮崎高校女教师陵辱12
@@ -54645,6 +54626,7 @@ z以留吧以其以武
茶鱼
茶鱼论坛
荆棘护卫兵
+艹
草
草bbbbbbb
草你
@@ -56680,7 +56662,6 @@ z以留吧以其以武
访问youtube
访问找我
访问链接
-证
证1次性
证书
证书办
@@ -57748,7 +57729,6 @@ z以留吧以其以武
践踏我
踏莎行3军战震魔
踏莎行3军战震魔txt
-踢
踢到中国脸
踢思皮这几个的首字母漆山妖这几个是数字
踢踢球
diff --git a/src/test/java/com/github/houbb/sensitive/word/bs/SensitiveWordBsChineseTest.java b/src/test/java/com/github/houbb/sensitive/word/bs/SensitiveWordBsChineseTest.java
new file mode 100644
index 0000000..1fac846
--- /dev/null
+++ b/src/test/java/com/github/houbb/sensitive/word/bs/SensitiveWordBsChineseTest.java
@@ -0,0 +1,29 @@
+package com.github.houbb.sensitive.word.bs;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.List;
+
+/**
+ * project: sensitive-word-SensitiveWordBsTest
+ * create on 2020/1/7 23:43
+ *
+ * @author Administrator
+ * @since 0.0.6
+ */
+public class SensitiveWordBsChineseTest {
+
+ /**
+ * 忽略中文繁简体
+ * @since 0.0.6
+ */
+ @Test
+ public void ignoreChineseStyleTest() {
+ final String text = "我爱我的祖国和五星紅旗。";
+
+ List wordList = SensitiveWordBs.newInstance().findAll(text);
+ Assert.assertEquals("[五星紅旗]", wordList.toString());
+ }
+
+}
diff --git a/src/test/java/com/github/houbb/sensitive/word/bs/SensitiveWordBsEnglishTest.java b/src/test/java/com/github/houbb/sensitive/word/bs/SensitiveWordBsEnglishTest.java
new file mode 100644
index 0000000..78ccb9a
--- /dev/null
+++ b/src/test/java/com/github/houbb/sensitive/word/bs/SensitiveWordBsEnglishTest.java
@@ -0,0 +1,29 @@
+package com.github.houbb.sensitive.word.bs;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.List;
+
+/**
+ * project: sensitive-word-SensitiveWordBsTest
+ * create on 2020/1/7 23:43
+ *
+ * @author Administrator
+ * @since 0.0.6
+ */
+public class SensitiveWordBsEnglishTest {
+
+ /**
+ * 忽略英文写法
+ * @since 0.0.6
+ */
+ @Test
+ public void ignoreEnglishStyleTest() {
+ final String text = "Ⓕⓤc⒦ the bad words";
+
+ List wordList = SensitiveWordBs.newInstance().findAll(text);
+ Assert.assertEquals("[Ⓕⓤc⒦]", wordList.toString());
+ }
+
+}
diff --git a/src/test/java/com/github/houbb/sensitive/word/data/DataUtil.java b/src/test/java/com/github/houbb/sensitive/word/data/DataUtil.java
index e350e54..207ef05 100644
--- a/src/test/java/com/github/houbb/sensitive/word/data/DataUtil.java
+++ b/src/test/java/com/github/houbb/sensitive/word/data/DataUtil.java
@@ -2,6 +2,8 @@ package com.github.houbb.sensitive.word.data;
import com.github.houbb.heaven.util.io.FileUtil;
import com.github.houbb.heaven.util.util.CollectionUtil;
+import org.junit.Ignore;
+import org.junit.Test;
import java.util.Collection;
import java.util.Collections;
@@ -33,4 +35,17 @@ public class DataUtil {
return stringList;
}
+ @Test
+ @Ignore
+ public void singleCharTest() {
+ final String path = "D:\\github\\sensitive-word\\src\\main\\resources\\dict.txt";
+
+ List stringList = FileUtil.readAllLines(path);
+ for(String s : stringList) {
+ if(s.length() == 1) {
+ System.out.println(s);
+ }
+ }
+ }
+
}