2
用ANSI C PCRE我可以通過以下方式提取部分及其內容:xpressive中的通配符是指文本的整個末尾?
(?ms)^\\[(.+?)\\](.*?)(?=\\n\\[|.\\z)
從[sec1] a = b [sec2] c = d
我[sec1] a = b
和[sec2] c = d
但我如何能在xpressive中做到這一點?
用ANSI C PCRE我可以通過以下方式提取部分及其內容:xpressive中的通配符是指文本的整個末尾?
(?ms)^\\[(.+?)\\](.*?)(?=\\n\\[|.\\z)
從[sec1] a = b [sec2] c = d
我[sec1] a = b
和[sec2] c = d
但我如何能在xpressive中做到這一點?
如果您使用的是「動態」方言,則可以使用與PCRE完全相同的語法。例如(未經測試):
using namespace boost::xpressive;
sregex rx = sregex::compile("(?ms)^\\[(.+?)\\](.*?)(?=\\n\\[|.\\z");
如果您使用xpressive中的「靜態」的方言,通配符模式_
(在命名空間boost::xpressive
它匹配任何字符如果你想除外的任何字符匹配。換行字符,你可以使用~_n
最後,如果你想除了邏輯換行符任何單個字符匹配(\r
,\n
,\r\n
和Unicode變種),您可以使用~_ln
。(編輯:固定錯字)