import re text = 'thenextnothingis123456' print(re.search(r'(\d*)', text).group(0))
为什么这段代码不能匹配出数字?如果将d替换成w反倒可以匹配出所有字符?
学习是最好的投资!
r'(d*)' の * の意味は 0 以上と一致することであるため、どの文字にも一致することはできません。 re.search を使用して文字列の先頭から照合を開始します。「thenextnothingis123456」の最初の文字は数字ではないため照合できませんが、r'(d*)' はどの文字にも照合できないため、空の文字列になります。が返されます。
And r'(d+)' は、1 と複数の数値の一致を必要とします。'thenextnothingis123456' の一致に使用すると、最初の文字が文字ではないことがわかり、文字 1 が始まるまで 2 番目の文字の試行が続けられます。 . Number なので、「123456」が一致することは、以下の出力を見るとわかります。
なぜこのコードは数字と一致しないのでしょうか?
実際に一致したと感じます。これは 0 回です。あなたの .group(0) は nonetype エラーを報告しませんでした。これは、一致が成功したことを示しています。
正規表現に関する 30 分間の入門チュートリアル
リーリー
d を試行すると、* は 0 回以上を意味します
r'(d*)' の * の意味は 0 以上と一致することであるため、どの文字にも一致することはできません。 re.search を使用して文字列の先頭から照合を開始します。「thenextnothingis123456」の最初の文字は数字ではないため照合できませんが、r'(d*)' はどの文字にも照合できないため、空の文字列になります。が返されます。
And r'(d+)' は、1 と複数の数値の一致を必要とします。'thenextnothingis123456' の一致に使用すると、最初の文字が文字ではないことがわかり、文字 1 が始まるまで 2 番目の文字の試行が続けられます。 . Number なので、「123456」が一致することは、以下の出力を見るとわかります。
リーリーなぜこのコードは数字と一致しないのでしょうか?
実際に一致したと感じます。これは 0 回です。あなたの .group(0) は nonetype エラーを報告しませんでした。これは、一致が成功したことを示しています。
正規表現に関する 30 分間の入門チュートリアル
リーリー
11111111 re.search では #######2222222
を使用しているため、この文の結果は空になります。d を試行すると、* は 0 回以上を意味します
リーリー