我正在尝试制作一个正则表达式,它会发现某些错误输入的分数情况,并将分子和分母作为组返回。
这些情况涉及斜杠和数字之间的空格:例如1 /2
或1/ 2
。
我在正则表达式中使用逻辑或运算符,因为我不想检查 2 个单独的模式:
r'(\d) /(\d)|(\d)/ (\d)'
(我没有使用\d+
,因为我对直接与除号相邻的数字更感兴趣,尽管\d+
也可以)。
问题是,当它匹配其中一种情况时,比如说第二个(1/ 2
),查看所有组给出(None, None, '1', '2')
,但我希望有一个只返回 2 个组的正则表达式——在这两种情况下,我都希望组是('1','2')。这可能吗?
编辑:
我还希望它为 case 返回组 ('1', '2') 1 / 2
,但不为格式良好的分数(如1/2
.