此问题在此处已有答案:
How do you match only valid roman numerals with a regular expression?(17个回答)
6天前关闭
我试图创建一个正则表达式,匹配罗马数字(从1到99),后跟“-“或“-“。它应该只匹配罗马数字在行首的情况。我想在每个匹配之前添加一个换行符。示例字符串是:
VI - lealdade e ética;
VII - busca da verdade real;
VIII - livre convencimento técnico-jurídico do delegado de polícia;
IX - controle de legalidade dos atos policiais civis;
X - uso diferenciado da força para preservação da vida, redução do sofrimento e o inciso
II redução de danos;
XI – continuidade investigativa
criminal;
XII – atuação imparcial na condução da atividade
investigativa e de polícia judiciária;
XIII – política de gestão direcionada à proteção e
à valorização dos seus
integrantes;
XIV – unidade de doutrina e uniformidade de
procedimento;
XV – autonomia, imparcialidade, tecnicidade e cientificidade investigativa, indiciatória, inquisitória, notarial e pericial; "
字符串
使用模式r'^(I{1,3}|IV|V|VI{1,3}|IX|X{1,3}|XL|L -|– )'
,我可以在每个罗马数字前插入一个换行符,后跟“-“或“-“。
问题是,它还在“II redução de danos;"之前插入了一个新行。如何纠正这种行为?
使用r'^(I{1,3}|IV|V|VI{1,3}|IX|X{1,3}|XL|L) (?:-|–) '
模式,我只能在罗马数字前面插入一个换行符,后面跟“-“。为什么?
1条答案
按热度按时间rjzwgtxy1#
对于99个值,一个正则表达式既有大量的组合,也有复杂的组合,而不是那么多。简单的列表不容易创建和管理--可以考虑只是测试行
.startswith(tuple_of_values)
是否包含值,或者通过编程方式从它构建正则表达式字符串