0
import re
str2='hello: acb cross'
reg = re.compile('hello: (a*) cross')
m = reg.search(str2)
print m
if m:
   nat= m.group(0)
   print(nat)

上記のスニペットでは、出力が「hello:acb cross」であると期待していました。group(1)を実行した場合は、「acb」である必要があります。しかし、私は何も得られませんでした。printmはNoneを返します。うまくいかない理由を教えてください。

ただし、このようなことを試してみると、次のように機能します。

import re
str1 = "carter notes: dependent on stems"
r = re.compile('carter notes:(.*)stems')
m = r.search(str1)
if m:
   lx = m.group(1)
   #print(m.group(0))
   print(lx)
4

2 に答える 2

2

a*a「任意の数のs」を意味します。

.*「任意の数(任意の1文字)」を意味します。

あなたは「a、その後に任意の数の(任意の単一文字)」を意味しました。つまりa.*

于 2013-01-21T02:50:27.467 に答える
0

これを試して:

str2='hello: acb cross'
reg = re.compile('hello: (a.*?) cross')
于 2013-01-21T03:00:28.950 に答える