如何选择特定的单词模式

时间:2015-05-12 02:46:16

标签: python-2.7

我正在尝试识别单词notes to financial statements。在某些情况下,句子以'notes to financial Statements'开头,在其他情况下,它以' notes to financial statements'开头(也就是说,在单词之前有一些空格)。我想选择财务报表附注'只有在这两种情况下,即包含单词的句子以或不带一些空格开头。这是一项简单的工作,我知道我只需要使用正则表达式。问题是在其他情况下,某些字符出现在单词之前。例如,随附财务报表附注'。因此,模式是一些词,一个空格,然后是财务报表的注释。我不想选择这个。

给出如下文字:

"""Take a look at accompanying notes to financial statements"""

n1=re.sub(r'\W*notes to financial statements','### Notes ###',text2)

以上命令选择财务报表的注释,我不想选择,因为它前面有一些单词。此命令提供如下输出:

"""Take a look at accompanying ### Notes ###""" 

我认为这是因为\W*捕获了伴奏和音符之间的一个空格。如何使命令在这种情况下不选择'财务报表附注'谢谢。

1 个答案:

答案 0 :(得分:1)

您只需添加与行首相匹配的^字符,并使用\s代替\W来匹配空格:

"""Take a look at accompanying notes to financial statements"""

n1=re.sub(r'^\s*notes to financial statements','### Notes

只有当可选空格和指定短语是该行的第一件事时才会匹配。

Demo

请注意,您可能需要考虑添加不区分大小写的标记(i),因为我怀疑您通常会看到大写N