我发现编译模式在某些情况下不起作用。 例如
<div class="row"><div class="boxed_content">Classification of Research<br>
{% for rdo in form.classif_res %}
<div class="form-check form-check-inline">
{{ rdo }}
</div>
{% endfor %}
<input class="form-control" type="text" name="classif_other" id="res_classifcation" />
</div></div>
返回无
尽管
import re
s1 = 'one two three four'
s2 = 'five six seven eight'
p = re.compile(r'^five')
m = p.search(s1 + '\n' + s2, re.MULTILINE)
返回一个匹配。
编译模式时会发生什么变化?
答案 0 :(得分:1)
只是你把旗子放在了错误的地方。如果要将标志与已编译的正则表达式一起使用,则在创建它时传递它们:
In [4]: import re
...: s1 = 'one two three four'
...: s2 = 'five six seven eight'
...: p = re.compile(r'^five', re.MULTILINE)
...: m = p.search(s1 + '\n' + s2)
...: print(m)
...:
<_sre.SRE_Match object; span=(19, 23), match='five'>
您未收到错误的原因是re.MULTILINE
是int
的子类,已编译的正则表达式search
方法正在将其解释为第二个位置参数,pos
。