我使用具有以下约定的文本:
[[PLACEHOLDERNAME]]
是文本中的占位符,将被替换。
[[VALUENAME]Text or Value[[/VALUENAME]]
是一个Key / Value对,我需要从文本中读出来。
我得到的键/值对(2.)
Regex dataValueRE = new Regex(@"\[\[(?<datakey>.*\w)]\](?<datavalue>.*?)\[\[/\1\]\]", RegexOptions.Singleline);
但我有问题只能使用不同的正则表达式占位符(1.),因为这个
\[\[(?<placeholder>.*\w)\]\]
也会从2开始。
欢迎任何提示!
答案 0 :(得分:0)
如果我理解正确,你可以使用否定前瞻:
\[\[(?<placeholder>[^\]]*\w)\]\](?!.*\[\[/\1\]\])
然后你可能想要在开头禁止使用斜杠:
\[\[(?!/)(?<placeholder>[^\]]*\w)\]\](?!.*\[\[/\1\]\])
请参阅demo