Python2.7で開発してます。
ある文字列に対し、正規表現で「(?<tag>.*?)\s+」で半角スペースまでの文字列を抽出できると思ったのですが、正しく取得できません。
その文字列に日本語や全角が含まれているとダメなようですが、どんな文字でも無条件に抽出させるにはどうしたら良いでしょうか?
または行末まで全ての文字列をmatchさせるにはどのようにしたらよいでしょうか?
よろしくお願いします。
現象が再現するソースコードを提示ください。
また、そのソースコードにおける入力、現状の結果と期待する結果を記載ください。
(?<tag>
というのは、何のつもりですか?
ありがとうございます。tagは任意の文字列で、pythonではグループ名と言うんでしょうか?
具体的には
(?P〈tag〉.*?)¥s
(?P〈tag〉.*?)$
と試してみましたが、マッチングできませんでした。ググるとfindallを使いreplaceするようなのは見つかるんですが、共通関数として使ってる為、方法を探してます。
P は付けてるんですね。質問文では付いてなかったので、何かと思いました。
(?P〈tag〉.*?)¥s
↑全角になってますが、大丈夫ですか?
それ以外は問題ないので、できるはずです。
ありがとうございます。そして、失礼しました。ログファイルに対し、これをやっており、確かにマッチングする行としない行があります。
マッチングされない行は全角文字が多用されており、■や〜などこれらが怪しいかと思いました。行の最後の改行も認識されず…
正規表現は合っているので、それ以外の部分がおかしいです。
Python2だと、文字列の扱いが、バイト文字列とユニコード文字列が別にあって、変換など必要なようですが、そのあたりのノウハウは十分でしょうか?
ありがとうございます。それは認識していませんでした。その辺を意識して調査してみます。ありがとうございますm(_ _)m
回答1件
あなたの回答
tips
プレビュー