如何在正则表达式中区分具有相同格式的捕获组
How to differentiate capture groups with the same format in Regex
我在一个日志文件中查看多个日志,每个日志都包含以下行:
Completed in 0.00023 (4328 reqs/sec) | Rendering: 0.00010 (45%) | DB: 0.00000 (0%)
我的捕获组是:
0.00023 (4328 reqs/sec)
0.00010 (45%)
0.00000 (0%)
我需要解析每个日志条目并将解析后的值存储在数据库中。
示例:
cycle_time | render-time | active_record
| |
0.00023 (4328 reqs/sec) | 0.00010 (45%) | 0.00000 (0%)
| |
我正在使用正则表达式来解析它们,但我的问题是我无法区分这些值,因为它们几乎具有相同的格式。我目前使用这个正则表达式:
\d\.\d{5}\s\(\d{1,2}\%\)
然而,它只捕获 render_time 和 active_record 的值,甚至无法区分两者。有什么想法吗?
您可以尝试类似的方法:
((?<=Completed in ).+?(?= \|)).*((?<=Rendering: ).+?(?= \|)).*((?<=DB: ).*)$
这会给你 3 个组,然后你可以将它们分别存储到你的数据库中:
1. 0.00023 (4328 reqs/sec)
2. 0.00010 (45%)
3. 0.00000 (0%)
我在一个日志文件中查看多个日志,每个日志都包含以下行:
Completed in 0.00023 (4328 reqs/sec) | Rendering: 0.00010 (45%) | DB: 0.00000 (0%)
我的捕获组是:
0.00023 (4328 reqs/sec)
0.00010 (45%)
0.00000 (0%)
我需要解析每个日志条目并将解析后的值存储在数据库中。
示例:
cycle_time | render-time | active_record
| |
0.00023 (4328 reqs/sec) | 0.00010 (45%) | 0.00000 (0%)
| |
我正在使用正则表达式来解析它们,但我的问题是我无法区分这些值,因为它们几乎具有相同的格式。我目前使用这个正则表达式:
\d\.\d{5}\s\(\d{1,2}\%\)
然而,它只捕获 render_time 和 active_record 的值,甚至无法区分两者。有什么想法吗?
您可以尝试类似的方法:
((?<=Completed in ).+?(?= \|)).*((?<=Rendering: ).+?(?= \|)).*((?<=DB: ).*)$
这会给你 3 个组,然后你可以将它们分别存储到你的数据库中:
1. 0.00023 (4328 reqs/sec)
2. 0.00010 (45%)
3. 0.00000 (0%)