我正在寻找与'>'匹配的正则表达式在
a > b
>
b>
...
但不是两个或多个有角度的括号,即不匹配
a>>b
>>
b>>
...
我肯定会用前瞻或外观来做到这一点,但出于某种原因,
\>(?!\>)
,也不
(?<!\>)\>
工作..?
谢谢!
答案 0 :(得分:4)
Perl语法:
/(?<!>)>(?!>)/
不使用前瞻或后视:
/(?:^|[^>])>(?:[^>]|$)/
答案 1 :(得分:1)
perreal的第一个正则表达式是正确的。然而,在该答案中给出的第二个正则表达式在一个条件中巧妙地失败。由于它会捕获前后的字符,因此不会同时找到由单个字符分隔的两个>
。
这是一个正则表达式,它只使用前向前瞻并且没有这个问题:
(?:^|[^>])(>)(?:$|(?!>))
答案 2 :(得分:0)
这里的问题是,当您使用前瞻时,您将匹配第二个>
(在第二个>
之后没有>
),并且当您使用lookbehind时,您将匹配第一个>
。
你可能会用这个:
[^>]>[^>]
>
之前或之后没有>
。
但我认为,为了满足您的需要,需要使用前瞻和后视两者:
(?<!>)>(?!>)