擅长:python、mysql、java
<p>“从我的组收集匹配的数字”字符串。在</p>
<pre><code>import re
pat = re.compile(r'\schr(\d+)\s')
def chr_val(line):
m = re.search(pat, line)
if m is not None:
return m.group(1)
else:
return ''
def is_valid(f):
line = f.readline()
v = chr_val(line)
if not v:
return False
return all(chr_val(line) == v for line in f)
with open("test.txt", "r") as f:
print("The file is {0}".format("valid" if is_valid(f) else "NOT valid"))
</code></pre>
<p>注意事项:</p>
<ul>
<li><p>预编译用于速度的正则表达式。</p></li>
<li><p>使用原始字符串(<code>r''</code>)指定正则表达式。</p></li>
<li><p>模式要求在<code>chr</code>字符串的任一侧有空格(<code>\s</code>)。</p></li>
<li><p>如果第一行没有好的<code>chr</code>值,则<code>is_valid()</code>返回{<cd5>}。然后它返回一个布尔值,如果下面的所有行都与第一行的<code>chr</code>值匹配,则该值为true。</p></li>
<li><p>您的示例代码只打印了<code>The file is True</code>这样我就更友好了。</p></li>
</ul>