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