Hatena::Grouprubyist

Rubyをラクガク(正規表現編) RSSフィード

2009-11-28

[]先読み 先読み - Rubyをラクガク(正規表現編) を含むブックマーク はてなブックマーク - 先読み - Rubyをラクガク(正規表現編) 先読み - Rubyをラクガク(正規表現編) のブックマークコメント

(?= )

先読み(lookahead)。パターンによる位置指定(幅を持たない)

no title

先読み、戻り読みは位置に対してマッチする。

puts "/(?=Jeffrey)Jeff/ =~ 'by Jeffrey fried1': #{/(?=Jeffrey)Jeff/ =~ 'by Jeffrey fried1'}"
puts "/(?=Jeffrey)Jeff/ =~ 'by Tomas Jefferson': #{/(?=Jeffrey)Jeff/ =~ 'Tomas Jefferson'}"
/(?=Jeffrey)Jeff/ =~ 'by Jeffrey fried1': 3
/(?=Jeffrey)Jeff/ =~ 'by Tomas Jefferson': 

[]戻り読み 戻り読み - Rubyをラクガク(正規表現編) を含むブックマーク はてなブックマーク - 戻り読み - Rubyをラクガク(正規表現編) 戻り読み - Rubyをラクガク(正規表現編) のブックマークコメント

(戻り読み(lookbehind)は Oniguruma *7が必要)

no title

ということで、1.9だと動作します。

ret = "its Jeffs pen.".gsub(/(?<=\sJeff)(?=s\s)/, "'")
puts "'its Jeffs pen.'.gsub(/(?<=\sJeff)(?=s\s)/, \"'\"): #{ret}"
ret = "its Jeffs pen.".gsub(/(?<!\sJeff)(?!s\s)/, "'")
puts "'its Jeffs pen.'.gsub(/(?<!\\sJeff)(?!s\\s)/, \"'\"): #{ret}"
'its Jeffs pen.'.gsub(/(?<=\sJeff)(?=s\s)/, "'"): its Jeff's pen.
'its Jeffs pen.'.gsub(/(?<!\sJeff)(?!s\s)/, "'"): 'i'ts' 'J'e'f'fs' 'p'e'n'.'

本当は「\s」ではなく「\b」で動かしたかったんだけど、うまく動作させることができなかった。

MariMari 2012/10/16 14:14 Your webtise has to be the electronic Swiss army knife for this topic.

zegpcgzegpcg 2012/10/19 14:45 vzpnKp , [url=http://bvtoqaktujib.com/]bvtoqaktujib[/url], [link=http://ojbffkgmypii.com/]ojbffkgmypii[/link], http://cdcizhjfhgru.com/

myglpumyglpu 2012/10/20 02:19 SFUjbl <a href="http://fokpffayndgd.com/">fokpffayndgd</a>

xmplpkxxmplpkx 2012/10/20 22:47 LZfkGd , [url=http://lujqpnzwertg.com/]lujqpnzwertg[/url], [link=http://pwylwkzppsbt.com/]pwylwkzppsbt[/link], http://csouquyefvky.com/

ゲスト



トラックバック - http://rubyist.g.hatena.ne.jp/hsyd/20091128