小编Osc*_*rro的帖子

使用正则表达式的 Bash 变量替换无法按预期工作

给定一个包含以下字符串的 bash 变量:

INPUT="Cookie: cf_clearance=foo; __cfduid=bar;"
Run Code Online (Sandbox Code Playgroud)

为什么替换会${INPUT/cf_clearance=[^;]*;/}产生输出:Cookie: 而不是我所期望的:Cookie: __cfduid=bar;

在在线正则表达式验证器中测试相同的正则表达式确认cf_clearance=[^;]*;应该cf_clearance=foo;只匹配,而不是字符串的其余部分。

我在这里做错了什么?

regex bash substitution

3
推荐指数
1
解决办法
6202
查看次数

XPath:选择一个节点而不提取其子节点

如何在不检索其所有子节点的情况下使用XPath选择节点?例如,在以下XML文档中:

<parentnode>
  <node1 a="b" b="c">
    <child1/>
    <child2/>
    ... many many child nodes
    <childN/>
  </node1>
  <node2/>
</parentnode>
Run Code Online (Sandbox Code Playgroud)

我希望能够选择'node1'元素以检查其属性,但是没有选择子节点,我不需要解析它可能是数千个元素,从而影响查询的性能(其输出用于在第三方库中构建一种带有数组和字典的DOM树).

更新:为了更清楚,我提到的第三方库实际上只是一个围绕libxml2解析器的Objective-C包装器,它使用任何XPath查询的结果构建由Foundation类构成的DOM树.查询本身是在已经解析的文档(xmlDocPtr)上执行的,该文档被重用于所有查询,所以是的,正如许多答案所说,文档已经在C级上进行了DOM,但Objective-C包装器实现产生了性能在这个特殊情况下.我可以修改这个库以选择性地不获取所选节点的子节点,但我认为可能有一种简单的方法来仅使用查询检索节点的属性.

xml xpath

2
推荐指数
1
解决办法
4371
查看次数

标签 统计

bash ×1

regex ×1

substitution ×1

xml ×1

xpath ×1