python
s = '{(-2x)sin3x}'
rulex = ['(sin+\d*x+)']
正则能匹配成功
s = '{(-2x)sin**(3)3x**(3)}'
rulex = ['(sin+\*\*\(\d\)*\d*x+\*\*\(\d\)*)']
正则也能匹配成功
s = '{(-2x)sin3x}'
rulex = ['(sin+\*\*\(\d\)*\d*x+\*\*\(\d\)*)']
为啥不能匹配呢
\*\*\(\d\)*这个作为一个整体是可能出现零次或者N次的.
我是哪里理解错了呢?
s = '{(-2x)sin3x}'
s = '{(-2x)sin**(3)3x**(3)}' 目的的是希望一个正则能同时匹配以上2个字符串
觉得有很多问题,你前面的都可能有错的。
中
['(sin+\d*x+)']
是匹配sin3x
,sinnx
,sinnn3x
之类,里面的第一个+
是修饰n
的。你想修饰sin
需要(sin)+
此外里面的
(
是需要转义的。你可以试一下:
['\((sin)+(\*\*\(\d+\))?\d*x+(\*\*\(\d+\))?\)']
估计你对规则式中组的概念还有混淆。