我是正则表达式的新手,如果第一节为空且没有字母数字字符,则需要帮助以弄清楚如何形成正则表达式以返回False。目前,我正在使用以下正则表达式,但仍将换行符,回车符视为字符串。
任何帮助将不胜感激
PATTERN = r'Section One:[\s]*'
输入:
1. Section One:
2. Section Two: lknlknvd lknlfnv
lvkndflvlkvndflvkn
vlkfdnlkfn
3. Section Three:pklnklnfvl lknlknvl
flvkndflknvlf
答案 0 :(得分:0)
一种选择是使用以下模式:
Section One:\s*(?:\d+\.\s+Section|$)
当文本Section One:
后面紧跟空格时,在另一个节头开始或字符串的末尾之前,该空格将为正匹配。我未提及您的某些输入可能只有一个空白部分的可能性。
import re
line = "1.Section One:\n\nSection Two: lknlknvd lknlfnv\nlvkndflvlkvndflvkn\nvlkfdnlkfn\n\n3. Section Three:pklnklnfvl lknlknvl\nflvkndflknvlf "
obj = re.match( r'.*Section One:\s+(?:\d+\.\s+Section|$)', line, re.M|re.I)
if obj:
print "Section One has no content"
else:
print "Section One has content"
答案 1 :(得分:0)
您可能想要这个
Section One:.*[a-z0-9].*$
re.MULTILINE
和re.IGNORECASE
。
.*[a-z0-9].*
:匹配包含至少一个字母数字字符的内容,即。 [a-z0-9]
。
$
:确保与整行匹配。