我有以下格式化的示例字符串:
== header == information about things ==headeragain== info can have characters like.*?{=
等仅在一行上。
我想将其解析为哈希,使得键是“==.+?==”,值是键之后的信息。我尝试了几个正则表达式来全局匹配这些对:
%hash = $string =~ /(==.+?==)(.+)/g
和
%hash = $string =~ /(==.+?==)(.+?)/g
将匹配第一个键,然后将其他所有内容作为其值,并分别仅匹配键。
%hash = $string =~ /(==.+?==)(.+(?===.+?==))/g
应该向前看下一个键,但不是我理解的“吃掉它”。但是,它只会匹配第一对而不会进一步。
我认为这个问题来自对全局修饰符如何起作用的误解。我需要在我的一种表达方式中进行一些调整吗?还是我需要做一些完全不同的事情?