作者MOONY135 (談無慾)
看板C_and_CPP
標題[問題] 正則表示有辦法找兩段字串嗎?
時間Fri Oct 28 10:33:35 2016
開發平台(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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1477622018.A.56B.html
1F:→ pttworld: regex matching multiple words,目前寫法有order問題。 10/28 10:41
2F:→ MOONY135: 感恩 10/28 10:48
3F:推 CoNsTaR: 咦 '^CPU .* MOD$' 不行嗎@@ 10/28 11:18
4F:→ clang: 樓主的文字可能是段落中出現cpu. mod兩個關鍵字,鎖死行首 10/28 11:33
5F:→ clang: 尾不適當吧 10/28 11:33
6F:推 CoNsTaR: 喔喔 原來 我還以為 "CPU xxxxxx MOD" 是他的 pattern… 10/28 11:41
7F:→ MOONY135: 對 不是鎖死行首跟行尾... 10/28 13:51
8F:→ uranusjr: 這兩個詞之間有順序嗎?沒有的話你現在的方法很好了 10/28 13:58
9F:→ 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
10F:→ uranusjr: 如果有順序的話那就 "CPU.+MOD" 然後用 globalMatch 10/28 14:41
11F:→ uranusjr: 或者 "\\bCPU\\b.+\\bMOD\\b" 之類的看你的需求 10/28 14:42
12F:→ uranusjr: 重點是用 globalMatch 如果 iter.hasNext() 代表有符合 10/28 14:42
13F:推 godspeedlee: CPU\s+\w+\s+MOD 11/01 00:09