我想将XPath子组合器“ /”替换为CSS子组合器“>”。

考虑不同的现有CSS选择器,并在将一些空格转义之后,我尝试匹配正则表达式:

([\w\-\*\.\#]|[\[[^\]]+\]])>([\w\-\*\.\#]|\[ )


并替换为:

$1/$2


这对我发现的所有情况都适用,但只有一种:当选择器之一只有一个字符,并且被两个子组合器夹住时,例如:“ div> a> div”。

有人知道如何正确处理一个字母字符吗?

我在这里留下一些示例:http://fiddle.re/4xkrt

谢谢!

最佳答案

我必须重复亚历克斯的问题。 “为什么不将>替换为/”?

但是,如果您坚持要检查>两侧是否都包含内容,那么环顾四周便是解决之道。

(?<=[\w\-\*\.\#]|[\[[^\]]+\]])>(?=[\w\-\*\.\#]|\[ )


这只是捕获>,所以用/替换。

10-04 18:06