gpt4 book ai didi

regex - PCRE:返回匹配子模式的偏移量

转载 作者:行者123 更新时间:2023-12-01 03:28:27 28 4
gpt4 key购买 nike

我希望将大量模式与 Web 文档中的各种 HTML 元素、属性和文本相匹配。

例如,我可能对 <title> 的内容感兴趣元素并有一个这样的正则表达式:

pcre *test_filter = pcre_compile("(google|stackoverflow|expertsexchange)",0,&error,&erroffset,NULL);

如果我要针对“stackoverflow”的输入字符串进行测试,我想知道是否有可能以某种方式引用该组内的偏移量,即在这种情况下为 1,0 代表 google,2 代表 experstexchange。

理想情况下,我将连接一堆文本字符串,这似乎是了解码中哪个成员匹配的最明显方法,而不是执行进一步的正则表达式。
pcre 是否存在此类功能? ?

最佳答案

您提供的 RE 模式有助于查找匹配的字符串的值,但是您必须(至少)查找匹配的值才能将索引添加到组中。如果你改变模式让每个词都在自己的捕获组中,那么你可以使用来自 pcre_exec() 的返回值。获取最后一个捕获组的索引(加 1)。

如果模式是 "(google)|(stackoverflow)|(expertsexchange)" , 那么如果 google匹配,pcre_exec()会返回 1 (或 2 代表 stackoverflow &c)。

在准备正则表达式时,我建议从反向排序的字符串列表中构建它;这会将较长的匹配放在较短(包含)的匹配之前,即使您使用更复杂的东西,这通常也是一个很好的起点。

关于regex - PCRE:返回匹配子模式的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39885627/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com