🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #305

Re: Jak zamienic regexpem znak na backslash i ten sam znak

#305
From: Jaroslaw Zabiello
Date: Mon, 20 Nov 2006 13:47
32 lines
1767 bytes
Dnia Mon, 20 Nov 2006 13:59:14 +0100, Maciej Pilichowski napisał(a):

>>return filename.gsub(/([;!&%$' ])/,'\\\1')
> 
> Jak sie okazalo nie 3 \ ale ... 5 \ Tylko nie wiem jakie jest sensowne
> uzasadnienie. RubyCentral podaje, ze tak ma byc i koniec, ale nie
> przekonuje mnie taka argumentacja.

Masz rację. To wygląda ewidentnie na błąd w Ruby, bo w Pythonie jest OK

>>> import re
>>> for f in ['pl;ik', 'pl ik', 'pl!ik']:
... 	print re.sub(r"([;!&%$' ])", r'\\\1', f)
... 
pl\;ik
pl\ ik
pl\!ik

Zamiast mnożyć backslashe możesz też użyć Regexp#escape, ale to tylko
monkey patching.

for f in ['pl;ik', 'pl ik', 'pl!ik']
  puts f.gsub(/([;!&%$' ])/, '\\\\'+'\1')
  #puts f.gsub(/([;!&%$' ])/,Regexp.escape('\\')+'\1') # tak też można
end
pl\;ik
pl\ ik
pl\!ik

-- 
Jarosław Zabiełło
http://blog.zabiello.com
Technical Details
Message-ID: <1f7nq1sloh3rw$.1fl69zy0j9ab5.dlg@40tude.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <82gul25dgfl84i5purg7odeviae9t6ijje@4ax.com> <ejptmj$36g$1@news.task.gda.pl> <ejrp5b$hd5$1@news.task.gda.pl> <ri93m2d4rrb8n3gfg1e9hrbgmj4c4g4gd5@4ax.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Jaroslaw Zabiello <hipertracker@gmail.com>
Newsgroups: pl.comp.lang.ruby
Subject: Re: Jak zamienic regexpem znak na backslash i ten sam znak
Date: Mon, 20 Nov 2006 13:47:30 +0000
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 32
Message-ID: <1f7nq1sloh3rw$.1fl69zy0j9ab5.dlg@40tude.net>
References: <82gul25dgfl84i5purg7odeviae9t6ijje@4ax.com> <ejptmj$36g$1@news.task.gda.pl> <ejrp5b$hd5$1@news.task.gda.pl> <ri93m2d4rrb8n3gfg1e9hrbgmj4c4g4gd5@4ax.com>
NNTP-Posting-Host: 82.195.148.233
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1164030488 4089 82.195.148.233 (20 Nov 2006 13:48:08 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Mon, 20 Nov 2006 13:48:08 +0000 (UTC)
X-User: newsgate2006
User-Agent: 40tude_Dialog/2.0.15.1pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit