我有一个很大的docx
文件,其中穿插着以下内容:
PART I
PART II
PART III
PART IIIA # part 3, section A
PART IV
PART V
PART VI
PART VII
我正试图用python编写一个正则表达式,用re.match
、re.findall
或re.search
来实现这些功能。我无法找出正确的正则表达式语法来只提取上面提到的内容——而在SO或anywhere上没有给出一个正确提取罗马数字的例子
关于如何转换/验证的例子很多,但没有简单的正则表达式匹配的例子。我正要离开这里:
[PART].*\s[I]|[II]|[III]|[IIIA]|[IV]|[V]|[VI]|[VII]
或者
[PART].*\s(?=[MDCLXVI])M*(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})$
但那不管用-我把“或”部分搞乱了Best other SO article I could find
方括号内的字符只与列出的字符中的一个匹配,因此在您的情况下,不应将
PART
放在方括号内。最后也不需要$
,因为您正在尝试匹配更大字符串中的子字符串假设输入字符串存储在变量
s
中,下面对re.findall
的调用应返回列表中的所有此类事件:演示:https://regex101.com/r/NGdyw3/2
相关问题 更多 >
编程相关推荐