为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2021-03-31 14:15:17
我正在处理一个正则表达式来处理文本,如果它在同一行中,它几乎会考虑文本,但是如果它从下一行开始,它将忽略文本。我尝试添加\ s *,但这似乎没有用。能否请您介绍一下如何针对这种情况调整正则表达式PATTERN = r’Section One:(\s?)[\t\f ]*[\w+]’输入:1. Section One: Gyjbhj jchhhhj jjgvbgg2. Section Two: lknlknvd lknlfnvlvkndflvlkvndflvknvlkfdnlkfn3. Section Three:pklnklnfvl lknlknvlflvkndflknvlf 
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

元字符\s等效于[ \t\n\r\f\v]。这意味着它将与换行符匹配\n。如果要匹配除换行符以外的任何空格,则必须使用set明确声明它[ \t\r\f\v]。


虽然,看来您想要做的是匹配以开头的文本部分'Section [some number]:'。为此,您可以利用.与换行符不匹配的事实。


pattern = r'Section \w+:.*'

例子

import re


text = """

1. Section One:

 Gyjbhj jchhhhj jjgvbgg


2. Section Two: lknlknvd lknlfnv

lvkndflvlkvndflvkn

vlkfdnlkfn


3. Section Three:pklnklnfvl lknlknvl

flvkndflknvlf"""


print(re.findall(pattern, text))

输出

['Section One:', 'Section Two: lknlknvd', 'Section Three:pklnklnfvl']


查看完整回答
反对 回复 2021-04-09
  • 1 回答
  • 0 关注
  • 635 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信