[英]Python regex search for string at beginning of line in file
這是我的代碼:
#!/usr/bin/python
import io
import re
f = open('/etc/ssh/sshd_config','r')
strings = re.search(r'.*IgnoreR.*', f.read())
print(strings)
返回數據,但我需要特定的正則表達式匹配:例如:
^\s*[^#]*IgnoreRhosts\s+yes
如果我將代碼更改為:
strings = re.search(r'^IgnoreR.*', f.read())
甚至
strings = re.search(r'^.*IgnoreR.*', f.read())
我什么都沒收到。 我需要能夠在perl中使用真正的正則表達式
您可以使用多線模式,然后^匹配一行的開頭:
#!/usr/bin/python
import io
import re
f = open('/etc/ssh/sshd_config','r')
strings = re.search(r"^\s*[^#]*IgnoreRhosts\s+yes", f.read(), flags=re.MULTILINE)
print(strings.group(0))
請注意,如果沒有此模式,您始終可以用\\n
替換^
另請注意,此文件已校准為番茄,因此:
^IgnoreRhosts\s+yes
足以檢查參數
編輯:一個更好的方法
with open('/etc/ssh/sshd_config') as f:
for line in f:
if line.startswith('IgnoreRhosts yes'):
print(line)
再一次,沒有理由擁有領先的空間。 但是,如果您想確保始終可以使用lstrip()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.