1 つの正規表現を使用して、次の文字列から値を取得するにはどうすればよいですか?
/*##debug_string:value/##*/
また
/*##debug_string:1234/##*/
また
/*##debug_string:http://stackoverflow.com//##*/
結果は
value
1234
http://stackoverflow.com/
あなたのパターンの後ろを読もうとしている
re.findall("/\*##debug_string:(.*?)/##\*/", your_string)
をエスケープしなかったため、バリエーションが機能しないことに注意してください*
。正規表現で*
は、前の文字/グループの繰り返しを意味します。*
本当にそのキャラクターを意味する場合は、 を使用する必要があります\*
。
import re
print re.findall("/\*##debug_string:(.*?)/##\*/", "/*##debug_string:value/##*/")
print re.findall("/\*##debug_string:(.*?)/##\*/", "/*##debug_string:1234/##*/")
print re.findall("/\*##debug_string:(.*?)/##\*/", "/*##debug_string:http://stackoverflow.com//##*/")
次のように実行します。
['value']
['1234']
['http://stackoverflow.com/']
編集: URL を取得できることがわかりました。それを考慮してパターンを修正しました。
フォーマットが一貫していると仮定すると、次のようになります。
re.findall('debug_string:([^\/]+)\/##', string)