- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
假设我们有这个:
.................
=== Operation 'abcd::ddca:dsd' ended in 1.234s /1.234s (100.00%) execution time
................
使用 Notepad++ ,我可以通过以下方式识别它:
^\=* Operation '([\d\D]*)' ended in (\d*.\d*)s\s*/(\d*.\d*)s \([\d\D]*\) execution time
我希望将操作名称和执行时间分组。
在 python 中,试试这个:
exp=re.compile(r"^\=* Operation \'([\d\D]*)\' ended in (\d*.\d*)s\s*/(\d*.\d*)s \([\d\D]*\) execution time")
什么都不提供。我已经尝试过 \\(
来转义文字括号,但它没有用。我猜我不需要这样做,因为我在使用 r[exp]"时构建对象表达式。
关于如何获得与在 notepad++ 中相同的结果的任何想法?
LE:只尝试过:
exp=re.compile(r"^\=* Operation \'([\d\D]*)\'", flags=re.MULTILINE)
仍然没有找到任何东西。
LE2:
稍后在我使用的代码中 groups=exp.match(INPUT)
我用 groups.group(n)
回答:问题是匹配
。使用 search
修复了问题
最佳答案
问题中提到的正则表达式对我来说没有任何变化。
>>> s = """
... .................
... === Operation 'abcd::ddca:dsd' ended in 1.234s /1.234s (100.00%) execution time
... ................
... """
>>> import re
>>> exp = re.compile(r"^\=* Operation \'([\d\D]*)\' ended in (\d*.\d*)s\s*/(\d*.\d*)s \([\d\D]*\) execution time", flags=re.M)
>>> re.search(exp, s)
<_sre.SRE_Match object at 0x1038766b8>
>>> re.findall(exp, s)
[('abcd::ddca:dsd', '1.234', '1.234')]
不过要考虑两件事:
re.M
search
或findall
方法进行匹配。确保您没有使用 re.match
,因为它只会匹配字符串的开头。关于python - regEx 在 notepad++ 中有效,但在 python 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21824220/
我是一名优秀的程序员,十分优秀!