Python中文
首页
教程
问答
标签
搜索
登录
注册
罗马数字的正则表达式不起作用
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图用以下正则表达式从文本中识别罗马数字:</p> <pre><code>>>>Title="LXXXIV XC, XCII XXX LXII" >>>RomanNum = re.findall(r'[\s,]+M{0,4}[CM|CD|D?C{0,3}]?[XC|XL|L?X{0,3}]?[IX|IV|V?I{0,3}]?[\s,]+', Title, re.M|re.I)` >>>RomanNum [' \t'] </code></pre> <p>我想要这样的东西:</p> <pre><code>['LXXXIV', 'XC, 'XCII', 'XXX', 'LXII'] </code></pre> <p>就我对正则表达式的理解而言,我认为至少应该匹配<code>XC</code>。<code>XC</code>应该将上面正则表达式的<code>[XC|XL|L?X{0,3}]</code>部分与前面的空白和后面的逗号相匹配,由上面的正则表达式捕获。我错过了什么?你知道吗</p> <p>除此之外,我还可以实现以下预期结果(但我希望避免更大的复杂性):</p> <pre><code>>>>RomanNum = [re.search(r'^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$', TitleElem, re.M|re.I) for TitleElem in re.split(',| ', Title)]` </code></pre> <p>谢谢你的帮助。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>此时您的正则表达式语法已关闭:</p> <blockquote> <p><code>XC</code> should match <code>[XC|XL|L?X{0,3}]</code></p> </blockquote> <p>因为您使用了<em>方括号</em>来描述<em>圆括号</em>的行为。将方括号改为圆括号以进行更正。你知道吗</p> <p>这个错误在完整正则表达式的其他部分重复出现。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
6 回答
文本小部件:在没有输入时更新并在循环后保持空闲
2 回答
文本小部件tkin
1 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
8 回答
文本小部件tkinter复制图像选项
8 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
3 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
4 回答
文本小部件不显示lis中的内容
2 回答
文本小部件不显示Unicode字符
7 回答
文本小部件中写入的行间距
6 回答
文本小部件中的文本作为变量
7 回答
文本小部件中的滚动条仅显示在底部
8 回答
文本小部件中的选项卡键空间计数
1 回答
文本小部件作为Lis
9 回答
文本小部件在主框架中扩展列宽
2 回答
文本小部件未使用删除功能清除
9 回答
文本小部件滚动动画(Tkinter、Python)
4 回答
文本居中。格式正确吗?
8 回答
文本差分算法
2 回答
文本已知时音频文件中的单词索引
5 回答