rulex = ['(sin+\*\*\(\d\)*\d*x+\*\*\(\d\)*)'] 为啥不能匹配呢?

rulex =  ['(sin+\*\*\(\d\)*\d*x+\*\*\(\d\)*)'] 为啥不能匹配呢?

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个字符串


回答:

觉得有很多问题,你前面的都可能有错的。

s = '{(-2x)sin3x}'

rulex = ['(sin+\d*x+)']

['(sin+\d*x+)']是匹配 sin3xsinnx,sinnn3x 之类,里面的第一个+是修饰n的。你想修饰sin需要 (sin)+
此外里面的(是需要转义的。
你可以试一下:
['\((sin)+(\*\*\(\d+\))?\d*x+(\*\*\(\d+\))?\)']

估计你对规则式中组的概念还有混淆。

以上是 rulex = ['(sin+\*\*\(\d\)*\d*x+\*\*\(\d\)*)'] 为啥不能匹配呢? 的全部内容, 来源链接: utcz.com/p/938583.html

回到顶部