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

作者: MOONY135 (談無慾)   2016-10-28 10:33:35
開發平台(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"))
{
}
作者: pttworld (批踢踢世界)   2016-10-28 10:41:00
regex matching multiple words,目前寫法有order問題。
作者: MOONY135 (談無慾)   2016-10-28 10:48:00
感恩
作者: CoNsTaR ((const *))   2016-10-28 11:18:00
咦 '^CPU .* MOD$' 不行嗎@@
作者: clang (llvm)   2016-10-28 11:33:00
樓主的文字可能是段落中出現cpu. mod兩個關鍵字,鎖死行首尾不適當吧
作者: CoNsTaR ((const *))   2016-10-28 11:41:00
喔喔 原來 我還以為 "CPU xxxxxx MOD" 是他的 pattern…
作者: MOONY135 (談無慾)   2016-10-28 13:51:00
對 不是鎖死行首跟行尾...
作者: uranusjr (←這人是超級笨蛋)   2016-10-28 13:58:00
這兩個詞之間有順序嗎?沒有的話你現在的方法很好了
作者: MOONY135 (談無慾)   2016-10-28 14:16:00
有CPU必定會出現在MOD之前
作者: uranusjr (←這人是超級笨蛋)   2016-10-28 14:41:00
如果有順序的話那就 "CPU.+MOD" 然後用 globalMatch或者 "\\bCPU\\b.+\\bMOD\\b" 之類的看你的需求重點是用 globalMatch 如果 iter.hasNext() 代表有符合
作者: godspeedlee (妳,我可以)   2016-11-01 00:09:00
CPU\s+\w+\s+MOD

Links booklink

Contact Us: admin [ a t ] ucptt.com