我有以下正则表达式匹配名称 - 值对:
^(?<NameValue>(?<Name>[A-Z][\w]*):(?<Value>[\w]*)(?=(\||\z)))+$
我试图匹配管道字符或行尾。基本上它应匹配像
这样的文本Setting1:Value1|Setting2:Value2|Setting3:Value3
任何人都知道我做错了什么。已经有一段时间了,因为我有正则表达式让我像这样:) 更新: 结束
^(?:(?<NameValue>(?<Name>[A-Z][\w]*):(?<Value>[\w]*))(?m:\||$))+
谢谢大家!
答案 0 :(得分:1)
匹配管道或行尾的正则表达式:
(?m:\||$)
m
ultiline标记使$
匹配行尾。
\z
只匹配字符串的结尾,从不结束行。
您可以使用如下表达式:
var re = @"(?xm)
\A
(?:
(?<Name>[A-Z]\w*)
:
(?<Value>\w*)
(?: \| | $ )
)+
\z";