gpt4 book ai didi

python - 使用正则表达式匹配特定的 Apache VirtualHost

转载 作者:太空宇宙 更新时间:2023-11-03 18:47:43 25 4
gpt4 key购买 nike

我目前正在尝试通过 ServerName 来匹配 apache 配置文件中的单个 Apache VirtualHost 条目。虚拟主机的。我正在使用 python 执行此操作,使用 re模块。

以下是我正在使用的文件类型的示例:

<VirtualHost *:8000>
DocumentRoot "/path/to/dir1"
ServerName eg1.dev
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/path/to/docroot"
ServerName desired.dev
</VirtualHost>

<VirtualHost *:8080>
DocumentRoot "/path/to/dir3"
ServerName eg2.dev
</VirtualHost>


我想将 VirtualHost 与 ServerName 相匹配的desired.dev 。所以我的目标是:

<VirtualHost *:80>
DocumentRoot "/path/to/docroot"
ServerName desired.dev
</VirtualHost>


我认为使用正则表达式这会相当简单,但我不知道如何做到这一点。我目前有:

<VirtualHost \*:[0-9]*>.*?ServerName +desired\.dev.*?</VirtualHost>

但问题是它与第一个 <VirtualHost... 匹配,匹配ServerName并在所需 VirtualHost 的结束标记末尾停止匹配。

我知道可能有用于解析 Apache 配置文件的 python 模块,但我不希望使用标准库之外的任何内容。如果使用正则表达式尝试这个是一个糟糕的主意,还有其他选择吗?

最佳答案

<VirtualHost \*:[0-9]*>(?:.(?!</VirtualHost))*?ServerName +desired\.dev(?:(?!</VirtualHost).)*?</VirtualHost>

尝试一下,它使用前瞻来确保它不会在任何 VirtualHost 结束标记上运行。

关于python - 使用正则表达式匹配特定的 Apache VirtualHost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19126342/

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