[问题] 正则表示有办法找两段字串吗?

楼主: 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