c - 为什么非原子断言匹配两个,一个相反?
问题描述
所以我稍微修改了 pcre2 页面上的示例:
^(?*.*(?<abstrptr>[*]((?<qualifiers>\bconst\b|\brestrict\b|\bvolatile\b))*+(?C11)))(.*?\b(?&abstrptr)\b)+
我在 C 中有一个函数,它在标注 11 上打印命名组 abstrptr 内的组(所以是限定符)。
这是我要匹配的内容:
*const*restrict*volatile*const
我的输出是(第一个数字是 abstrptr 中的组 id):
2 - const
2 - restrict
2 - volatile
2 - const
full match is: 0 - 30, *const*restrict*volatile*const
我不明白为什么输出是这个顺序 - 我只是想让它反向打印(即 const volatile restrict const)。
编辑:好的,像这样:
^(?*.*(?<abstrptr>[*]((?<qualifiers>\bconst\b|\brestrict\b|\bvolatile\b))*+(?C11)))(\b(?&abstrptr)\b.*?)+
做到了,但它不再匹配模式(完全匹配)。
解决方案
推荐阅读
- ruby-on-rails - 在生产中加载 webpacker 资产
- android - java.lang.NullPointerException:尝试调用虚拟方法'float android.view.InputDevice$MotionRange.getMin()'
- product - 立即订购 opencart 3.0 产品页面的页面表单
- html - div 中的“掩码”跨度适用于纯 HTML,但不适用于 wordpress
- intellij-idea - 如何查看编译/运行时错误信息
- uber-api - UberPOOL 中可能的乘客数量
- postgresql - postgres Upsert中的TypeError
- php - 与自定义格式的日期差异
- javascript - 如何通过单击下拉列表外部来隐藏复选框下拉列表
- c# - 模型列表中的字符串未绑定