正则表达式以匹配下一行中的单词

我正在处理一个正则表达式来处理文本,如果它在同一行中,它几乎会考虑文本,但是如果它从下一行开始,它将忽略文本。我尝试添加\ s *,但这似乎没有用。


能否请您介绍一下如何针对这种情况调整正则表达式


PATTERN = r’Section One:(\s?)[\t\f ]*[\w+]’

输入:


1. Section One:

 Gyjbhj jchhhhj jjgvbgg


2. Section Two: lknlknvd lknlfnv

lvkndflvlkvndflvkn

vlkfdnlkfn


3. Section Three:pklnklnfvl lknlknvl

flvkndflknvlf 


萧十郎
浏览 636回答 1
1回答

aluckdog

元字符\s等效于[ \t\n\r\f\v]。这意味着它将与换行符匹配\n。如果要匹配除换行符以外的任何空格,则必须使用set明确声明它[ \t\r\f\v]。虽然,看来您想要做的是匹配以开头的文本部分'Section [some number]:'。为此,您可以利用.与换行符不匹配的事实。pattern = r'Section \w+:.*'例子import retext = """1. Section One: Gyjbhj jchhhhj jjgvbgg2. Section Two: lknlknvd lknlfnvlvkndflvlkvndflvknvlkfdnlkfn3. Section Three:pklnklnfvl lknlknvlflvkndflknvlf"""print(re.findall(pattern, text))输出['Section One:', 'Section Two: lknlknvd', 'Section Three:pklnklnfvl']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python