我正在尝试识别单词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*
捕获了伴奏和音符之间的一个空格。如何使命令在这种情况下不选择'财务报表附注'谢谢。
答案 0 :(得分:1)
您只需添加与行首相匹配的^
字符,并使用\s
代替\W
来匹配空格:
"""Take a look at accompanying notes to financial statements"""
n1=re.sub(r'^\s*notes to financial statements','### Notes
只有当可选空格和指定短语是该行的第一件事时才会匹配。
请注意,您可能需要考虑添加不区分大小写的标记(i
),因为我怀疑您通常会看到大写N
。