Python 正则表达式只搜索字符串中的回车符和换行符
我是正则表达式的新手,需要帮助找出如何形成一个正则表达式,以便在第一节为空且没有字母数字字符时返回False。目前我正在使用下面的正则表达式,但它仍然将换行符、回车符视为字符串 任何帮助都将不胜感激Python 正则表达式只搜索字符串中的回车符和换行符,python,regex,python-2.7,Python,Regex,Python 2.7,我是正则表达式的新手,需要帮助找出如何形成一个正则表达式,以便在第一节为空且没有字母数字字符时返回False。目前我正在使用下面的正则表达式,但它仍然将换行符、回车符视为字符串 任何帮助都将不胜感激 PATTERN = r'Section One:[\s]*' 输入: 1. Section One: 2. Section Two: lknlknvd lknlfnv lvkndflvlkvndflvkn vlkfdnlkfn 3. Section Three:pklnklnfvl lknlk
PATTERN = r'Section One:[\s]*'
输入:
1. Section One:
2. Section Two: lknlknvd lknlfnv
lvkndflvlkvndflvkn
vlkfdnlkfn
3. Section Three:pklnklnfvl lknlknvl
flvkndflknvlf
一种选择是使用以下模式:
Section One:\s*(?:\d+\.\s+Section|$)
当文本第一节:
在另一节头开始或字符串结束之前后跟空白时,这将是一个正匹配。我留下了一个可能性,也许你的一些输入只有一个空的第一部分
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"
你可能想要这个
第一节:.[a-z0-9].$
使用re.MULTILINE
和re.IGNORECASE
*[a-z0-9].
:匹配至少包含一个字母数字字符的内容,即[a-z0-9]
$
:确保与整行匹配
请参阅示例。您是通过行还是缓冲区?更准确地说,您的代码/数据是什么。使用
re.DOTALL
或re.MULTILINE
@Jean Françoisfare可能是一种情况,如果试图匹配任意数量的(空)空白,那么\s*
应该涵盖它。好问题Jean,我将它作为缓冲区传递。结果是否不同?如果值作为字符串传递,则此操作有效。但是我从缓冲区输出中获取值,它仍然将\r\n字符作为换行符。很抱歉没有提到这一点,但我在每个部分前面都有一个索引编号。我现在编辑了这个问题。蒂姆,最后一个问题。我有另一个正则表达式来处理文本r'Section One:[\t\f]*[\w+]”,如果文本在同一行中,它几乎会考虑文本,但如果文本从下一行开始,它会忽略文本。我尝试在您最近的帖子后添加\s+,但似乎不起作用。你能不能解释一下正则表达式是如何被调整以适应这种情况的condition@user16210528你应该提出一个新问题。