C 正则表达式捕获组

C 正则表达式捕获组,c,regex,parsing,C,Regex,Parsing,我很难理解C中的正则表达式是如何工作的。 基本上,我有一个XML文件(我不能使用XML解析器),其中包含如下行: <Node Bla="blabla" Name="this is my name" .... /> <Node Name="this is my name" Bla="blabla" .... /> 但是这给了我Name=“这是我的名字”,我只是在寻找这是我的名字部分 我做错了什么?只需使用回溯来捕获字符串名称后面直到第一个“符号的字符 (?<=Nam

我很难理解C中的正则表达式是如何工作的。 基本上,我有一个XML文件(我不能使用XML解析器),其中包含如下行:

<Node Bla="blabla" Name="this is my name" .... />
<Node Name="this is my name" Bla="blabla" .... />
但是这给了我Name=“这是我的名字”,我只是在寻找这是我的名字部分


我做错了什么?

只需使用回溯来捕获字符串
名称
后面直到第一个
符号的字符

(?<=Name=\")([^\"]*)

(?您可能不需要捕获组

假设您的库有lookbehind(如果它是PCRE,它肯定会这样做),您可以使用此正则表达式来匹配名称:

(?<=[Nn]ame=")[^"]+

(?我认为,轻率的“我不能使用XML解析器”几乎是必须的。)我完全知道这不是最好的方法,相信我,如果我可以使用XML解析库,我会的。不过我相对有信心我可以“解析”“文件安全,因为:-XML结构是扁平的-XML文件是动态生成的,用户不可编辑您非常欢迎Thomas,很高兴它有帮助。:)顺便问一下,您知道您的正则表达式库的名称吗?只是好奇。
(?<=[Nn]ame=")[^"]+