以下是示例文本 -
display_errors = On
display_errors= Off
display_errors = On
我想提取最后display_errors
的值。我该怎么做?
到目前为止,我display_errors =(?!.*display_errors = )
能够匹配display_errors =
,但我想要它的价值,而不是关键。
我使用libpcre进行匹配。匹配所有选项
请注意我要使用正则表达式,而不是任何.ini解析库。
答案 0 :(得分:1)
尝试以下方法:
display_errors\s*=\s*([a-zA-Z]+)(?!.*display_errors\s*=)
这应匹配display_errors
键的最后一个值,假设值为字符a-z
(但如果需要,可以轻松更新接受字符列表)。
答案 1 :(得分:0)
按换行符拆分文本,使用正则表达式遍历每一行:
display_errors ?= ?(On|Off)
使用不区分大小写的方法编译,以捕获轻微的错误。捕获第一组的值以从该匹配中获取状态。在循环的每次迭代中,只需用当前状态覆盖变量,在循环结束后,变量将包含最后一个display_errors的值。