文字列「forum/123/topic/4567」。
正規表現を編集して「123」と「4567」を別々に取得するにはどうすればよいですか? 私はインターネットで多くの方法を試しましたが、何もうまくいきません。
式が常に (数値を除いて) 正確に同じであると仮定すると、次のコードが実行されます。
import re
string = "forum/123/topic/4567"
result = re.match("forum/(.*)/topic/(.*)", string)
number1, number2 = result.groups()[:]
パターンが変わる可能性がある場合は、その方法についてさらに情報が必要になります。ところで、正規表現に関する非常に優れた説明がhttp://www.tutorialspoint.com/python/python_reg_expressions.htmにあります。
次のようなものを試してください。Python の正規表現については、おそらくre モジュールforum/(\d+)/topic/(\d+)
が必要になるでしょう。例もあります。
squiguy はre
ここでやり過ぎであることに関して非常に良い点を挙げていますが:
>>> "forum/123/topic/4567".split("/")
['forum', '123', 'topic', '4567']
数字だけが必要な場合は、 を使用しますr'0-9+'
。これにより、入力文字列から分離された整数のシーケンスが得られます。