私は、次の正規表現している。さまざまな部分をこの文字列を検索し、一致したregexは動作しますが、Pythonでは動作しませんか?
.+?(=*)(myarray\()\{([\S| \|'.,]*)},\s*(\p{L}+)(.*\*\d+)
は、ここに示されている:
blahb.blah = myarray({-68,-67,-65,-62,-61,-59,-58,-56,-55,-53,-52,-51,-49,-48,-47,-46,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-29,-28,-27,-26,-26,-25,-24,-24,-23,-22,-22,-21,-21,-20,-20,-19,-19,-19,-18,-18,-18,-17,-17,-17,-16,-16,-16,-15,-15,-15,-14,-14,-14,-14,-13,-13,-13,-12,-12,-12,-11,-11,-11,-10,-10,-9.7,-9.4,-9.1,-8.8,-8.5,-8.2,-7.9,-7.5,-7.2,-6.9,-6.6,-6.3,-6,-5.7,-5.3,-5,-4.7,-4.4,-4.1,-3.8,-3.4,-3.1,-2.8,-2.5,-2.2,-1.9,-1.6,-1.2,-0.9,-0.6,-0.3,0,0.3,0.6,1,1.3,1.6,1.9,2.2,2.5,2.9,3.2,3.5,3.8,4.1,4.4,4.7,5.1,5.4,5.7,6}, x*456, 1);
しかし
https://regex101.com/r/frF0eC/7
、私はこれと同じ正規表現を実行しようとしますそれは動作しません。なぜだろう?他の正規表現システムとは違うPythonについて何かありますか?
HERESにPythonコードの例:それは検索やNoneを返すされていないいくつかの理由https://repl.it/EtP8/1
:
import re
myarray = " blahb.blah = myarray({-68,-67,-65,-62,-61,-59,-58,-56,-55,-53,-52,-51,-49,-48,-47,-46,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-29,-28,-27,-26,-26,-25,-24,-24,-23,-22,-22,-21,-21,-20,-20,-19,-19,-19,-18,-18,-18,-17,-17,-17,-16,-16,-16,-15,-15,-15,-14,-14,-14,-14,-13,-13,-13,-12,-12,-12,-11,-11,-11,-10,-10,-9.7,-9.4,-9.1,-8.8,-8.5,-8.2,-7.9,-7.5,-7.2,-6.9,-6.6,-6.3,-6,-5.7,-5.3,-5,-4.7,-4.4,-4.1,-3.8,-3.4,-3.1,-2.8,-2.5,-2.2,-1.9,-1.6,-1.2,-0.9,-0.6,-0.3,0,0.3,0.6,1,1.3,1.6,1.9,2.2,2.5,2.9,3.2,3.5,3.8,4.1,4.4,4.7,5.1,5.4,5.7,6}, asd*456, 1); "
matchObj = re.search(r".+?(=*)(myarray\()\{([\S| \|'.,]*)},\s*(\p{L}+)(.*\*\d+)", myarray)
print matchObj
print "matchObj.group() : ", matchObj.group()
print "matchObj.group(1) : ", matchObj.group(1)
print "matchObj.group(2) : ", matchObj.group(2)
ここでは、Pythonスクリプトのオンライン例ですか?どんな考え?
選択regex101におけるフレーバー= Pythonとあなたはそれがどちらかが仕事doesntのことがわかります。私は理由を知らないが、それはあなたがエラーを見つけるのに役立ちます。 – Cleared
reモジュールに '\ p {L}'のようなUnicode文字クラスがありません。このクラスが本当に必要な場合は、代わりにregexモジュールを使用してください。 (そうでない場合は '[a-zA-Z]'に置き換えてください) –