3
我想匹配大括号括起来的数字,但大括号本身就是转义序列,我希望匹配从最后一个大括号开始,当时它的确有一个奇数。相同字符的转义序列
{0} OK
{{0} NOT OK
{{{0} OK
{{{{0} NOT OK
我已经先行/后向断言是这样的:
(?<!\{\{)
但是,这并不符合重复{{{0}
,我其实不确定wheter这可能不涉及群体和表量来完成。 (如果断言不是匹配的一部分,我希望它)
匹配必须能够发生在字符串中的任何位置。
这是我到目前为止
(?<=^|[^\{]|\{\{)\{(?=\w)
它到处成功除了这一部分{{{{0}
把量词在一对大括号为不会出现任何效果最好的。根据docs,对零宽度正向lookbehind断言的子表达式不应有任何限制,但它不具有所需的效果。
你不得不重新安排有点为它工作。那部分让我感到惊讶。 – 2011-05-29 14:27:42
@John Leidegren:如果您想知道我使用了'\ {(?:\ {\ {)*'而不是'(?:\ {\ {)* \ {':它们是完全相同的。而'(?...)'只是一个匹配字符串的组未被引用(一个所谓的[无捕获组](http://msdn.microsoft.com/en-us/library/bs2twtah.aspx#noncapturing_group))。 – Gumbo 2011-05-29 14:31:35
但是你将重复从断言中移出。我认为那是让我愚弄的东西。我试图用一个我认为不可能的重复来断言。 – 2011-05-29 18:19:03