gpt4 book ai didi

python - 正则表达式中的逐字上下文

转载 作者:行者123 更新时间:2023-11-30 23:19:31 25 4
gpt4 key购买 nike

问题:

有没有办法告诉正则表达式引擎将正则表达式的特定部分逐字对待(即完全按原样查找该部分,无需进行通常的解析),而无需手动转义特殊字符?

一些背景:

我正在尝试从另一个正则表达式反向引用给定正则表达式上的组。例如,假设我想要将 hello(.*?)olleh 与文本 1 进行匹配,然后在文本 2 中查找 bye$1eyb,其中 $1 code> 将被替换为文本 1 中匹配的组 1。因此,如果文本 1 恰好包含字符串 "helloFOOolleh",程序将查找 "byeFOOeyb"在文本 2 中。

上面的代码在大多数情况下都可以正常工作,但如果文本 1 包含类似 "hello.olleh" 的内容,程序将不仅匹配 "hello.olleh" > 以及文本 2 中的 "helloXolleh""hellouolleh" 等,因为它将 . 解释为正则表达式特殊字符而不是纯点字符。

其他评论:

我不能只搜索将 $1 解析为组 1 匹配的纯字符串,因为我想在文本 2 中搜索的内容本身可能包含其他不相关的正则表达式。

我一直试图避免解析从文本 1 返回的匹配项并转义每个特殊字符,但如果有人知道一种巧妙地做到这一点的方法,那也可以工作。

我目前正在使用 Python 进行此工作,但如果可以使用任何其他语言/程序轻松完成,我很乐意尝试一下。

最佳答案

您可以使用re.escape函数来转义要按字面匹配的文本。因此,在提取匹配文本(例如“hello.olleh”中的“.”)后,请先对其应用 re.escape,然后再将其插入到第二个正则表达式中。

关于python - 正则表达式中的逐字上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26025119/

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