我使用php,我需要使用正则表达式拆分字符串(xpath)。 我只需要一个正则表达式分成以下"输入"。我希望有人可以帮助我。
输入: /路径/到/节点/测试
输出:
$result = array(
"path",
"to",
"node",
"test",
);
输入: /路径/到[子="串" AND sub2 =" string2"] / node / test
输出:
$result = array(
'path',
'to[sub="string" AND sub2="string2"]',
'node',
'test',
);
输入: /路径/到[子/路径/要="串"] /节点/测试
输出:
$result = array(
'path',
'to[sub/path/to="string"]',
'node',
'test',
);
先谢谢!
祝你好运 的Sascha
答案 0 :(得分:-1)
只需使用explode
$str = explode('/',yourString)
或者,如果您想要忽略/
内部[]
,则可以尝试使用以下正则表达式:
preg_match_all("/\[(?:[^\[\]]|(?R))+\]|[^\[\]\/]+/", $input, $matches);
示例:
$input = '/path/to[sub/path/to="string"]/node/test';
preg_match_all("/\[(?:[^\[\]]|(?R))+\]|[^\[\]\/]+/", $input, $matches);
var_dump($input);
var_dump($matches); //this will give you expected output
说明:
我们在这里捕捉了两种类型:
/\[(?:[^\[\]]|(?R))+\]
以递归方式匹配方括号之间的任何内容[^\[\]\/]+
匹配任何不包含[
]