特定の文字の両側に数字がある、カンマ区切りの文字列を正規表現で取り出そうとしました。
取り出し元の文字列:'abc1X2,3X4,5X6xyz' (両端の文字列(abcやxyz)は不定)
取り出したい部分 :'1X2,3X4,5X6'
正規表現での取り出し re.findall('[0-9]X[0-9],[0-9]X[0-9]', str) ~ $ python3 test2.py ['1X2,3X4']
正規表現での取り出し re.findall('[0-9]X[0-9],[0-9]X[0-9],[0-9]X[0-9]', str) ~ $ python3 test2.py ['1X2,3X4,5X6']
これで取り出せましたが、カンマでつながっている部分が可変である場合はどう書いたらいいでしょうか。
カッコで括って1回以上の繰り返しとして'+'をつけてみましたが、結果は後半部分しか取り出せませんでした。
正規表現での取り出し re.findall('[0-9]X[0-9](,[0-9]X[0-9])+', str)
~ $ python3 test2.py [',5X6']
やりたいことは、'abc1X2,3X4xyz'でも'abc1X2,3X4,5X6xyz'でも'abc1X2,3X4,5X6,7X8xyz'
でも「数字X数字がカンマでつながった部分を抽出する」なのですが、どのような
正規表現を書けば良いでしょうか。
python
1import re 2import sys 3import csv 4 5str = 'abc1X2,3X4,5X6xyz' 6 7get = re.findall('[0-9]X[0-9],[0-9]X[0-9]', str) 8 9print(get)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/10 08:27 編集
2022/06/10 09:00