作者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/cn.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