[解決済み] RegExで複数グループ?
2022-03-13 22:19:48
質問
Pythonで複数のグループを返すのに戸惑っています。私のRegExはこれです。
lun_q = 'Lun:\s*(\d+\s?)*'
そして、私の文字列は
s = '''Lun: 0 1 2 3 295 296 297 298'''`
マッチしたオブジェクトを返して、グループを見たいのですが、最後の番号(258)しか表示されません。
r.groups()
(u'298',)
のグループを返さないのはなぜですか?
0,1,2,3,4
などがあります。
解決方法は?
あなたの正規表現は1組の括弧(1つの捕捉グループ)しか含んでいないので、マッチには1つのグループしか含まれません。 捕捉グループに対して反復演算子を使うと (
+
または
*
) の場合、グループが繰り返されるたびに上書きされ、最後に一致したものだけが捕捉されます。
この例では、おそらく
.split()
正規表現と組み合わせてください。
lun_q = 'Lun:\s*(\d+(?:\s+\d+)*)'
s = '''Lun: 0 1 2 3 295 296 297 298'''
r = re.search(lun_q, s)
if r:
luns = r.group(1).split()
# optionally, also convert luns from strings to integers
luns = [int(lun) for lun in luns]
関連
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] Pandasのデータフレームで複数の列を選択する
-
[解決済み] Pythonのsuper()は多重継承でどう動くのか?
-
[解決済み] 正規表現を使用した電話番号の検証方法
-
[解決済み] 複数のスペースを1つのスペースに置き換える正規表現
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Pythonショートビデオクローラーチュートリアル
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み】ValueError: xとyは同じサイズでなければならない