[程式] 判斷文章裡出現關鍵字行數

作者: 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