gpt4 book ai didi

regex - 如何在ansible lineinfile regexp中指定不区分大小写的模式?

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

简单的问题。
我正在尝试匹配“UseDns”、“usedns”和其他变体。

- name: Disable DNS checking on login (huge speedup)
sudo: true
lineinfile:
dest: "/etc/ssh/sshd_config"
regexp: "^[# \t]*[Uu][Ss][Ee][Dd][Nn][Ss] "
# how does one specify case insensitive regexp in lineinfile?
line: "UseDNS no"
state: "present"
create: true
insertafter: EOF
notify:
- sshd restart

最佳答案

Ansible 使用 Python re module 。您可以在模式中使用 inline modifiers ,例如 (?ism) 。使用 i 进行不区分大小写的匹配:

regexp:   "(?i)^[# \t]*usedns "

内联修饰符适用于修饰符右侧的正则表达式部分,可以使用 - 禁用,例如 (?-i) 。这可以应用于仅对正则表达式的一部分实现不区分大小写。

例如,正则表达式 (?i)use(?-i)DNS 应该匹配 useDNSUseDNS ,但不匹配 useDnsUSEdns

关于regex - 如何在ansible lineinfile regexp中指定不区分大小写的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32920846/

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