Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式只搜索字符串中的回车符和换行符_Python_Regex_Python 2.7 - Fatal编程技术网

Python 正则表达式只搜索字符串中的回车符和换行符

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

我是正则表达式的新手,需要帮助找出如何形成一个正则表达式,以便在第一节为空且没有字母数字字符时返回False。目前我正在使用下面的正则表达式,但它仍然将换行符、回车符视为字符串

任何帮助都将不胜感激

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你应该提出一个新问题。