StringFilter
A text filtering program developed by Delphi mainly uses the regular expression function of. Can be used to process text.
- Quiet · last change 11-22-2021
- ★ 7 on GitHub
README
StringFilter
A text filtering program developed by Delphi mainly uses the regular expression function of. Can be used to process text.
本程序主要功能是实现文本文件过滤,能够从文本文件提取需要的数据,或者格式化文本文件,是从我爬虫程序里面提取的,通过配置,能够实现绝大部分的文本过滤处理。
配置文件是json格式,说明请看目录下conf.js的注释
msf.exe 是命令行程序 支持文本输入命令和参数输入,2者的格式一致。命令行参数为
filter conf=conf.js from=src.txt to=aa.txt print
filter 是主命令,对文本进行过滤,可以省略。 conf=conf.js 配置文件路径, from=src.txt 源文件的路径, to=aa.txt 输出结果文件路径 print 控制台打印输出结果,如果to参数是空,则默认打印,除非存在 print=false参数。 以上文件路径相对目录绝对目录都可以
TestStringFilter.exe 一个带界面的测试程序
需要qdac的qjson。地址 http://www.qdac.cc/
配置说明如下: //本配置是兼容的json格式,兼容常见的json格式。
{ FullToHalf:false, //全角转半角 HtmlUnescape:false, //HTML解码 MultiValueSpliter:"\r\n", //多个值之间的分割符,此处是回车和换行,同样可以是 , ; 等。
//Filters是按照顺序执行的过滤方法。包括 ftCopy,ftReplace,ftMatch,ftDelete 四种操作
/*
????????????????????????????????????????????? {
字段 可选 类型 说明
-------------------------------------------
FilterType 必须 字符串 操作类型
RegException 可选 布尔 是否表达式,默认false,只支持 false和true2个值
Exception1 必须 字符串 表达式1
Exception2 可选 字符串 表达式2,ftCopy,ftReplace,ftMatch时候,是必选项
FilterOptions 可选 字符串 操作选项,内容是foIgnoreCase, foAll, foRegMultiLine, foRegSingleLine 的组合数组 例如:FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine
foIgnoreCase ??????????????? ??????false
foAll ???????????? ??????false
foRegMultiLine ?????????????????????????????? ??????false
foRegSingleLine ?????????????????????????????? ??????true
Parallel ?????? ?????? ????????????????????????
true ??????????????????????????????????????????????????????????????????
false ???????????????????????????????????????
MultiValueSpliter ?????? ????????? ?????????????????????????????????MultiValueSpliter??????????????????????????????????????????????????????
BeforeStr ?????? ????????? ???????????????????????????????????????????????????
AfterStr ?????? ????????? ?????????????????????????????????????????????????????????????????????????????????
ftCopy ???????????????????????????????????????Exception1??????????????????Exception2??????????????? ????????????????????????????????????????????????FilterOptions ??????foAll??????????????????????????????????????????????????????
ftReplace ????????????Exception1?????????????????????Exception2???????????????Exception1????????????????????????Exception2?????????$0 $1 ???????????????
ftMatch ????????????????????????ftCopy???????????????????????????????????????Exception2??????????????????????????????????????????????????????ftReplace?????????
fgDelete ?????????????????????Exception2=""??????????????????ftReplace??????Exception1 Exception2 ????????????????????????2?????????????????????????????????
1?????????????????????????????????js????????????????????????\\
2???Filters????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????*/Filters:[
{FilterType:"ftCopy",RegException:false,Exception1:"",Exception2:"",FilterOptions:"[foAll]" },
{FilterType:"ftReplace",RegException:true,Exception1:"<script>s5f\\(\"([^\"]*?)\"\\);</script>",Exception2:" ($1)",FilterOptions:"[foIgnoreCase,foAll]" },
{FilterType:"ftReplace",RegException:true,Exception1:"]*?dicpy[^>]*>(.*?)(()|())",Exception2:"$1",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine{FilterType:"ftReplace",RegException:true,Exception1:"<script[^>]*>.*?</script>",Exception2:"",FilterOptions:"[foIgnoreCase,foAll]" },
{FilterType:"ftReplace",RegException:true,Exception1:"]*>.*?",Exception2:"",FilterOptions:"[foIgnoreCase,foAll]" },
{FilterType:"ftReplace",RegException:true,Exception1:"]*>.*?",Exception2:"",FilterOptions:"[foIgnoreCase,foAll]" },
{FilterType:"ftReplace",RegException:false,Exception1:"&",Exception2:"&",FilterOptions:"[foIgnoreCase,foAll]" },// {FilterType:"ftReplace",RegException:true,Exception1:"]>(.?)
",Exception2:"||$1||,",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine {FilterType:"ftReplace",RegException:true,Exception1:"(.?)",Exception2:"$1",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine {FilterType:"ftReplace",RegException:true,Exception1:"]?>\s*",Exception2:"",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine
{FilterType:"ftReplace",RegException:true,Exception1:"(.*?)",Exception2:"\"Char\":\"$1\",",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine{FilterType:"ftReplace",RegException:true,Exception1:"(.*?)",Exception2:"$1\\r\\n",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine
{FilterType:"ftReplace",RegException:true,Exception1:"",Exception2:"",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine{FilterType:"ftReplace",RegException:true,Exception1:"]*?charu_yc_url[^>]*>(.*?)",Exception2:"",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine{FilterType:"ftReplace",RegException:true,Exception1:"]*>(.*?)",Exception2:"$1",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine
{FilterType:"ftReplace",RegException:true,Exception1:"]*>(.*?)",Exception2:"$1",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine
{FilterType:"ftReplace",RegException:true,Exception1:"",Exception2:"",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine
{FilterType:"ftReplace",RegException:true,Exception1:"]>(.?)
",Exception2:"",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine {FilterType:"ftReplace",RegException:true,Exception1:"(.?)",Exception2:""$1":"$2",",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine {FilterType:"ftReplace",RegException:true,Exception1:"(.?)",Exception2:""$1":"$2",",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine {FilterType:"ftReplace",RegException:false,Exception1:"'",Exception2:"''",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine {FilterType:"ftReplace",RegException:false,Exception1:"\",Exception2:"\\",FilterOptions:"[foIgnoreCase, foAll]"},//, foRegMultiLine
{FilterType:"ftReplace",RegException:true,Exception1:"<br[^>]*>",Exception2:" ",FilterOptions:"[foIgnoreCase,foAll]" },
{FilterType:"ftReplace",RegException:true,Exception1:"",Exception2:"",FilterOptions:"[foIgnoreCase,foAll]" },
{FilterType:"ftReplace",RegException:true,Exception1:"\\n+",Exception2:"\n",FilterOptions:"[foIgnoreCase, foAll]" },// {FilterType:"ftReplace",RegException:false,Exception1:"\"",Exception2:"\\\"",FilterOptions:"[foIgnoreCase,foAll]" },
// {FilterType:"ftReplace",RegException:false,Exception1:"||",Exception2:"\"",FilterOptions:"[foIgnoreCase,foAll]" },
{Parallel:true, FilterType:"ftMatch",RegException:true,Exception1:"[^)]*>",Exception2:"\"swjzimg\":$1 ",FilterOptions:"[foIgnoreCase,foAll]" },
// {FilterType:"ftReplace",RegException:true,Exception1:"]*?)\"[^>]*>$",Exception2:"\"swjzimg\":\"$1\"",FilterOptions:"[foIgnoreCase,foAll, foRegMultiLine]" },
// {FilterType:"ftReplace",RegException:true,Exception1:".*?(\"swjzimg.*)$",Exception2:"$1",FilterOptions:"[foIgnoreCase,foAll, foRegMultiLine]" },
{FilterType:"ftReplace",RegException:true,Exception1:"^ ",Exception2:" ",FilterOptions:"[foIgnoreCase, foAll, foRegMultiLine]" } ,{FilterType:"ftReplace",RegException:true,Exception1:"]*?)\"[^>]*>",Exception2:"",FilterOptions:"[foIgnoreCase,foAll]" },
// {FilterType:"ftReplace",RegException:true,Exception1:"\\s*$",Exception2:"",FilterOptions:"[foIgnoreCase, foAll, foRegMultiLine]" } ,
// {FilterType:"ftReplace",RegException:true,Exception1:"\"\\s+",Exception2:"\"",FilterOptions:"[foIgnoreCase, foAll, foRegMultiLine]" } ,
{FilterType:"ftReplace",RegException:true,Exception1:"([^,])[\\r\\n]+",Exception2:"$1",FilterOptions:"[foIgnoreCase, foAll, foRegMultiLine]" } ,
{FilterType:"ftMatch",RegException:true,Exception1:"(.+)",Exception2:"{$1}",FilterOptions:"[foIgnoreCase, foAll]" } ,// {FilterType:"ftReplace",RegException:true,Exception1:"\\s+",Exception2:"",FilterOptions:"[foIgnoreCase, foAll]" }]}

