0

这是示例文本-

display_errors = On
display_errors= Off
display_errors = On

我想提取 last 的值display_errors。我怎么做?

到目前为止,我已经display_errors =(?!.*display_errors = )能够匹配display_errors =但我想要它的价值,而不是关键。

我正在使用 libpcre 与 . 匹配所有选项

请注意我必须使用正则表达式而不是任何 .ini 解析库。

4

2 回答 2

1

尝试以下操作:

display_errors\s*=\s*([a-zA-Z]+)(?!.*display_errors\s*=)

这应该与键的最后一个值匹配display_errors,假设值是字符a-z(但如果需要,可以轻松更新接受字符列表)。

于 2012-08-11T08:13:12.377 回答
0

用换行符分割文本,用这样的正则表达式遍历每一行:

display_errors ?= ?(On|Off)

编译时不区分大小写以捕获轻微错误。捕获第一组的值以从该匹配中获取状态。在循环的每次迭代中,只需用当前状态覆盖一个变量,循环结束后,该变量将包含最后一个 display_errors 的值。

于 2012-08-11T08:12:48.590 回答