iT邦幫忙

0

有關於正規表示法的編寫問題 (求此表示法的建議)

各位大大好
小弟最近才剛學正規表示法

事前使用C#在解析一個文件
其內容如下

TestItem => CheckRF_PowerHighChannel
StartTime => 2020-03-17 10:01:52
2478 RF power => -32.65dBm (-50.00dBm ~ 50.00dBm) - pass
EndTime => 2020-03-17 10:01:54
Result => pass

採用逐行讀取解析的方式
目前要先解析出 Tag => Log
並且把Tag 和 Log 印出來

而目前我所使用的正規表示法 如下
([\w\s]+)[ => ]([\w\s]+)
但是不知道為甚麼識別出來的數據是...
Tag-> 17 ,Log-> 10
Tag-> 2478 RF ,Log-> power
Tag-> 17 ,Log-> 10

還請各位解答
以及建議的表示法

1 個回答

2
Rex Chien
iT邦新手 4 級 ‧ 2020-03-17 11:59:21
最佳解答

(.+)\s=>\s(.+)

可以到這個網站試試看,裡面也會詳細解釋每個字元的意思
https://regexr.com/50h4r

lazywayne iT邦新手 5 級 ‧ 2020-03-17 12:05:15 檢舉

這樣看來加上 []是最大的錯誤所在 /images/emoticon/emoticon13.gif

Rex Chien iT邦新手 4 級 ‧ 2020-03-17 14:16:49 檢舉

[] 是要符合其中的任一字元,你的狀況是 \s=>\s 四個字元都要符合,所以不能包在 [] 裡面

listennn08 iT邦研究生 3 級 ‧ 2020-03-17 14:40:08 檢舉

你要擷取的字元不只有字母跟單字 不能用 [\w\s]+
至於R大說的比較好解決 (.+)[ => ]{4}(.+)
問題比較大的應該是截 Tag, log 的部分

我要發表回答

立即登入回答