[問題] 正則表示有辦法找兩段字串嗎?

看板C_and_CPP作者 (談無慾)時間7年前 (2016/10/28 10:33), 7年前編輯推噓3(3010)
留言13則, 6人參與, 最新討論串1/1
開發平台(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

10/28 10:41, , 1F
regex matching multiple words,目前寫法有order問題。
10/28 10:41, 1F

10/28 10:48, , 2F
感恩
10/28 10:48, 2F

10/28 11:18, , 3F
咦 '^CPU .* MOD$' 不行嗎@@
10/28 11:18, 3F

10/28 11:33, , 4F
樓主的文字可能是段落中出現cpu. mod兩個關鍵字,鎖死行首
10/28 11:33, 4F

10/28 11:33, , 5F
尾不適當吧
10/28 11:33, 5F

10/28 11:41, , 6F
喔喔 原來 我還以為 "CPU xxxxxx MOD" 是他的 pattern…
10/28 11:41, 6F

10/28 13:51, , 7F
對 不是鎖死行首跟行尾...
10/28 13:51, 7F

10/28 13:58, , 8F
這兩個詞之間有順序嗎?沒有的話你現在的方法很好了
10/28 13:58, 8F

10/28 14:16, , 9F
有CPU必定會出現在MOD之前
10/28 14:16, 9F
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

10/28 14:41, , 10F
如果有順序的話那就 "CPU.+MOD" 然後用 globalMatch
10/28 14:41, 10F

10/28 14:42, , 11F
或者 "\\bCPU\\b.+\\bMOD\\b" 之類的看你的需求
10/28 14:42, 11F

10/28 14:42, , 12F
重點是用 globalMatch 如果 iter.hasNext() 代表有符合
10/28 14:42, 12F

11/01 00:09, , 13F
CPU\s+\w+\s+MOD
11/01 00:09, 13F
文章代碼(AID): #1O4ha2Lh (C_and_CPP)