如何在ansible Lineinfle regexp中指定不区分大小写的模式?
简单的问题。 我正在尝试匹配“UseDns”、“UseDns”和其他变体如何在ansible Lineinfle regexp中指定不区分大小写的模式?,regex,ansible,Regex,Ansible,简单的问题。 我正在尝试匹配“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 rege
- 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。您可以在模式中使用,例如(?ism)
。使用i进行不区分大小写的匹配:
regexp: "(?i)^[# \t]*usedns "
内联修饰符适用于修饰符右侧的常规表达式部分,可以使用-
禁用,例如(?-i)
。这可以应用于只对正则表达式的一部分实现大小写不敏感
例如,正则表达式
(?i)use(?i)DNS
应该匹配useDNS
和useDNS
,但不是useDNS
或useDNS
,这是一个非常有用的答案-除了使用[pythex](),(?i)模式
可以工作之外,但是如果我尝试用(?i)重新启用敏感度,我会遇到语法错误