Python正则表达式并不匹配所有想要的字符

时间:2016-01-11 17:24:15

标签: python regex

我有一些由pdfs制作的txt文件,并希望使用一些python-script和regex-patterns添加一些xml-tags。大多数情况下它工作正常但有时表达式并不匹配所有想要的角色。在测试工具here中,它可以正常工作。

这是python-code:

matchs = re.finditer("<UTop>[^<]+",string)
    for m in matchs:
        tagend = m.end()
        string = string[:tagend] + "</UTop>" + string[tagend:]

原始字符串......

<Top>1. Regierungserklärung des Ministerpräsidenten<UTop>Ministerpräsident Winfried Kretschmann </Top>

......应该转变为:

<Top>1. Regierungserklärung des Ministerpräsidenten<UTop>Ministerpräsident Winfried Kretschmann </UTop></Top>

但它返回

<Top>1. Regierungserklärung des Ministerpräsidenten<UTop>Ministerpräsident Winfried Krets</UTop>chmann </Top>

代替。

我很乐意回答这个问题。 扬

2 个答案:

答案 0 :(得分:1)

使用Unicode标志:

IDialogService service = container.Resolve<IDialogService>();
service.OpenFileDialog(...);

对于HTML,请考虑使用BeautifulSoup

答案 1 :(得分:1)

我使用re.sub()测试它,结果似乎是正确的。

 #coding: utf-8
 import re
 input = "<Top>1. Regierungserklärung des Ministerpräsidenten<UTop>Ministerpräsident Winfried Kretschmann </Top>"
 print(re.sub(r"(<UTop>[^<]+)","\g<1><\\UTop>" ,input))

正如您所说,正则表达式测试工具也能正常工作。 here