くだすれPython(超初心者用) その39at TECH
くだすれPython(超初心者用) その39 - 暇つぶし2ch1034:取り出したいんですけどどうすればいいですか? 最初はrate[-7:-2]で取り出そうと思ったんですけど、たまに"500(3.27%)みたいな%が一桁のデータがあって、出力すると(3.27になり、エラーの原因になってしまうんです つまり()の中の数字だけ取り出す方法を教えてください



1035:デフォルトの名無しさん
18/11/23 16:34:17.54 e4GZHgy/.net
>>986
re.compile(r'\((.*)\%\)', re.I)

1036:デフォルトの名無しさん
18/11/23 17:04:36.40 joE0voDR.net
>>987
神がいた
最後のre.lがあるとなんかエラー起きたけどちょっと弄ったらできたわ
ありがとうございます
正規表現は素人には難しい

1037:デフォルトの名無しさん
18/11/23 17:08:26.06 f04GZ1ux.net
>>986
'\d+\.\d+(?=\%)'

1038:デフォルトの名無しさん
18/11/23 17:41:39.39 joE0voDR.net
>>989
こっちでもできた
しゅごい

1039:デフォルトの名無しさん
18/11/23 18:29:59.34 cGOad0jL.net
>>990
かわいい
掘らせて ハアハア(´Д`*)

1040:デフォルトの名無しさん
18/11/24 03:48:05.11 01jBobXF.net
Ruby で作った。
正規表現内で特別な意味をもつ、特殊文字を判別する
rp = Regexp.escape "(%)"
puts rp #=> \(%\)
( ) は特殊文字なので、それらから特別な意味を除いて、単なる文字として使うには、
前に、\(逆スラッシュ)を付けて、エスケープする
rate = "486,380(26.03%)"
md = rate.match /\((.*)%\)/
puts md[ 0 ] #=> (26.03%)
puts md[ 1 ] #=> 26.03
外側の( ) は、単なる文字として使うので、\( \) とエスケープするが、
内側の( ) は、キャプチャーの意味なので、エスケープしない
md[0]はマッチした文字列で、md[1]は、( )でキャプチャーした部分

1041:デフォルトの名無しさん
18/11/24 08:22:15.36 sJe2ncgH.net
>>992
いい加減にしろよ屑

1042:デフォルトの名無しさん
18/11/24 09:57:01.31 hG+y0dS8.net
>>992
圧倒的大人気言語Ruby!!
URLリンク(gigazine.net)
URLリンク(www.softantenna.com)
URLリンク(www.softantenna.com)
URLリンク(findy-code.io)
URLリンク(i.imgur.com)
大人気!!!

1043:デフォルトの名無しさん
18/11/24 11:16:19.41 ZWAqZgZk.net
>>994
記事読んでみたらRuby落ち目で草

1044:デフォルトの名無しさん
18/11/24 12:12:32.95 4kdGLnPd.net
re.search と re.findall どっち使うのが良いの?
web で調べると re.search 使ってる人や薦める人が多いみたいだけど
実際は re.findall の方が使いやすいと感じる

1045:デフォルトの名無しさん
18/11/24 12:22:51.14 rqBWhuzZ.net
お前が使いやすいと思うものを使え
お前の感性なんざ知らねえよ

1046:デフォルトの名無しさん
18/11/24 12:25:19.78 rqBWhuzZ.net
だいたいre.searchを薦めてる奴はその理由を書いてるだろ
(書いてない奴はゴミだから信用するな)
それを理解した上でre.findallの方がというなら、もはや否定する理由はない
お前の中ではそうなんだな、で終わりだ

1047:デフォルトの名無しさん
18/11/24 13:07:33.24 b4dZse+n.net
>>998
だったら最初から黙っとけよ、チンカス

1048:デフォルトの名無しさん
18/11/24 13:11:24.69 4kdGLnPd.net
finditer が良さそうなのでこれにします
本当にありがとうございました
仲良くしてね

1049:デフォルトの名無しさん
18/11/24 14:00:15.36 f9pHxWoA.net
一個見つかれば良い状況で
searchではなくfinditer使うのは面倒くさいだけのような
finditerはマッチしてもしなくてもイテレータが帰ってきちゃう

1050:デフォルトの名無しさん
18/11/24 14:17:31.53 S/+07wK4.net
じつにくだすれらしい
くだくだなながれですね (´・ω・`)

1051:デフォルトの名無しさん
18/11/24 14:24:37.27 4kdGLnPd.net
何個見つかるか事前に判らないので
match したかしなかったか調べるのに if m is None: みたいな書き方するなら
for _ in iter: でする方が楽なんです
条件後付けと言われればその通りですが

1052:デフォルトの名無しさん
18/11/24 14:25:34.56 4kdGLnPd.net
ume

1053:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 92日 6時間 34分 59秒

1054:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch