[程式] 判断文章里出现关键字行数

楼主: OfficeGL (努力上班族)   2020-04-16 19:10:12
目前查到的用法是用regex的match
先用一个list <string>纪录大约100个关键字
然后用for loop一个一个去检查来源文字档是否有maych到关键字
再印出出现关键字的行数
例如:
pattern = string.format(“/b{0}/b”, key);
foreach key in keyword list
foreach Match x in regex.match(src, pattern)
print at line xxx there is x.value
1. 请问有比这个还有效率的方法吗
2.这个有点像是编译器判别关键字
例如: data

ccdata ok
data err
data \n err
请问regex要怎么定义,试都试不出来
谢谢~
作者: mark0708 (sheep)   2020-04-16 21:14:00
感觉没有用regex的必要? 用string.contains 会不会更好?所以只找 "data" only?pattern = string.format(@"/b{0}/b", key);应该是没加 @ 刚试了一下
作者: Litfal (Litfal)   2020-04-17 00:13:00
你有100多个关键字,那反过来用HashTable应该比较快把关键字都先丢到Hashset里面,再把每个句子用字缘分割去拆成多个words,再检查任一字是否在Hashset里面字缘分割最简单就用Split也可以用 | 去串接正则的多个关键字,应该也蛮快的
作者: jinmin88 (昼伏夜出)   2020-04-19 12:14:00
有点像compiler中的lexical parser
作者: disabledman (m.m.)   2020-05-06 20:44:00
LINQ?

Links booklink

Contact Us: admin [ a t ] ucptt.com