看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) vs 2015 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) qt 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我有一個QString myString = "CPU xxxxxx MOD" 有辦法同時掃裡面有 CPU跟MOD的正則表示嗎? 我目前是使用下面這種做法 if (myString.contains("CPU") && myString.contains("MOD")) { } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.46.82 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1477622018.A.56B.html
pttworld: regex matching multiple words,目前寫法有order問題。 10/28 10:41
MOONY135: 感恩 10/28 10:48
CoNsTaR: 咦 '^CPU .* MOD$' 不行嗎@@ 10/28 11:18
clang: 樓主的文字可能是段落中出現cpu. mod兩個關鍵字,鎖死行首 10/28 11:33
clang: 尾不適當吧 10/28 11:33
CoNsTaR: 喔喔 原來 我還以為 "CPU xxxxxx MOD" 是他的 pattern… 10/28 11:41
MOONY135: 對 不是鎖死行首跟行尾... 10/28 13:51
uranusjr: 這兩個詞之間有順序嗎?沒有的話你現在的方法很好了 10/28 13:58
MOONY135: 有CPU必定會出現在MOD之前 10/28 14:16
myString會用for迴圈去跑所有電腦資訊 然後我需要的資訊除了CPU還有GPU的 myString 存到cpu的資訊時 裡面必定會是 "CPU xxxxxxx MOD" 所以我是打算這樣寫 if ((myString.contains("CPU") && myString.contains("MOD")) ||myString.contains("GPU")) { } ※ 編輯: MOONY135 (59.124.46.82), 10/28/2016 14:19:47
uranusjr: 如果有順序的話那就 "CPU.+MOD" 然後用 globalMatch 10/28 14:41
uranusjr: 或者 "\\bCPU\\b.+\\bMOD\\b" 之類的看你的需求 10/28 14:42
uranusjr: 重點是用 globalMatch 如果 iter.hasNext() 代表有符合 10/28 14:42
godspeedlee: CPU\s+\w+\s+MOD 11/01 00:09