多行python的Regex

2024-04-19 22:35:09 发布

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

我有以下文字:

"

In the Matter of

XYZ-ABCD

Respondent.

"

隐藏在pdf文件的某个部分。我只对捕捉 XYZ-ABCD部分,但显然我在python中使用的正则表达式没有正确捕获模式。你知道吗

我感兴趣的文本片段可以出现在PDF中的任何位置,我使用以下模式:

 pat = "^\n+In the Matter of\n+(\s+\w+\s*)\n+ 
 (Respondent\.|Respondents\.)\s+$" 

这是我用来捕获的正则表达式代码

 str = re.match(pat,input_str)

显然,我包含了\n来处理多行, 然而,我似乎没有得到任何比赛,似乎也没有看到我的模式中没有包括什么。这也包括部分匹配,我似乎没有得到。你知道吗


Tags: 文件ofthein文本pdf模式感兴趣
1条回答
网友
1楼 · 发布于 2024-04-19 22:35:09

你可以用

^\s+In the Matter of\s+(\S+)\s+Respondents?

请参见a demo on regex101.com(注意多行标志)。


您的原始表达式存在一些问题:
\n != \s       # \s includes \n but also other whitespace characters
\w = [A-Z0-9_] # but you wanted to match "-" as well which is not part of \w

此外,您可能既没有多行标记也没有详细标记,但是您的代码段看起来需要这样做。你知道吗

相关问题 更多 >