正则表达式匹配下一个lin中的单词

2024-10-01 05:02:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用正则表达式来处理文本,如果文本在同一行中,它几乎会考虑文本,但是如果文本从下一行开始,它就会忽略文本。我尝试添加\s*,但似乎不起作用。你知道吗

有人能告诉你如何调整regex以适应这种情况吗

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 

Tags: 文本情况sectiononeregexpatternthreetwo
1条回答
网友
1楼 · 发布于 2024-10-01 05:02:46

元字符\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']

相关问题 更多 >