Regex 正则表达式组不是以
我很难在一个用来处理.ini文件的正则表达式中计算出2个正则表达式 我有一个,我建议你用rubular和这些例子来理解Regex 正则表达式组不是以,regex,regex-group,Regex,Regex Group,我很难在一个用来处理.ini文件的正则表达式中计算出2个正则表达式 我有一个,我建议你用rubular和这些例子来理解 ^(?<key>[^=;\r\n]+)=((?<value>\"*.*;*.*\"[^;\r\n]*);?(?<comment>.*)[^\r\n]*) 要匹配: 这=不是;建议 这=isa;议论 这=isa;特殊的案例 我有一个: ^(?<key>[^=;\r\n]+)=(?<value>[^;\r\n]*);?(
^(?<key>[^=;\r\n]+)=((?<value>\"*.*;*.*\"[^;\r\n]*);?(?<comment>.*)[^\r\n]*)
要匹配:
这=不是;建议
这=isa;议论
这=isa;特殊的案例
我有一个:
^(?<key>[^=;\r\n]+)=(?<value>[^;\r\n]*);?(?<comment>[^\r\n]*)
相配
这是一个简单的例子
这很简单;议论
我正在尝试合并2个正则表达式,遗憾的是,我无法说我的值组是否不是从\开始使用第二个正则表达式,如果不是使用第一个正则表达式
现在我有了这个:
^(?<key>[^=;\r\n]+)=(((?<value>\"*.*;*.*\"[^;\r\n]*);?(?<comment>.*)[^\r\n]*)|(?<value>[^;\r\n]*);?(?<comment>[^\r\n]*))
但是它为这个简单的案例创建了两个未命名的部分,没有引用。我在想,也许通过为简单案例添加值组的第一项不能以\开头。但我没能做到
PS:我建议你使用rubular来更好地理解我的问题。对不起,如果我不够清楚这个怎么样
^(?<key>[^=;\r\n]+)=(?<value>"[^"]*"|[^;\n\r]*);?(?<comment>.*)
?[^=;\r\n]+与=符号前的部分匹配。
[^]*匹配双引号内的字符串,例如foobar字符串。如果没有,则正则表达式引擎将转到下一个模式[^;\n\r]*并匹配到第一个模式;或换行符或\r字符。这些匹配的字符存储在名为value的命名组中。
;? 可选分号。
?*其余字符存储在注释组中。
谢谢你,兄弟,但它不适用于:This=isa;特殊的案例对于这一个,我们应该有:Thisisa;这就是为什么我有这么多麻烦。如果有,;内部报价不应被检测为评论。谢谢!太完美了。你能解释一下你是如何建立正则表达式的吗?我想学习如何思考来构建这样的东西。