我正在尝试使用正则表达式来在我的程序中找到误用的运算符。
具体来说,我试图找出是否使用了某些运算符(例如 %、$ 和 @)而没有数字两侧的数字。
以下是一些滥用的例子:
'5%'
'%5'
'5%+3'
'5%%'
有没有办法通过单一的研究做到这一点?
我知道我可以使用 + 至少为 1,或 * 至少为 0,但请注意:
([^\d]*)(%)([^\d]\*)
我想找到至少存在 group(1) 和 group(3) 之一的情况,
因为在其两侧插入带有数字的 % 是运算符的一个很好的用途。
我知道我可以使用:
match = re.search(r'[^\d\.]+[@$%]', user_request)
if match:
return 'Illegal use of match.group()'
match = re.search(r'[@$%][^\d\.]+', user_request)
if match:
return 'Illegal use of match.group()'
但我更愿意用一个 re.search 行来做到这一点。
还有 - 当我使用 [^\d.] 时,这是否包括字符串结尾的开头?还是只有不同的字符?
相关分类