Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ansible Lineinfle regexp中指定不区分大小写的模式?_Regex_Ansible - Fatal编程技术网

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

如何在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

简单的问题。 我正在尝试匹配“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。您可以在模式中使用,例如
(?ism)
。使用i进行不区分大小写的匹配:

regexp:   "(?i)^[# \t]*usedns "
内联修饰符适用于修饰符右侧的常规表达式部分,可以使用
-
禁用,例如
(?-i)
。这可以应用于只对正则表达式的一部分实现大小写不敏感


例如,正则表达式
(?i)use(?i)DNS
应该匹配
useDNS
useDNS
,但不是
useDNS
useDNS
,这是一个非常有用的答案-除了使用[pythex](),
(?i)模式
可以工作之外,但是如果我尝试用(?i)重新启用敏感度,我会遇到语法错误