2012-02-04 12 views
4

私は次の形式正規表現と文字列操作

blah blah [user:1] ho ho [user:2] he he he

に文字列を持って、私はそれはのように二つの交換

blah blah <a href='1'>someFunctionCall(1)</a> ho ho <a href='2'>someFunctionCall(2)</a> he he he

に置き換えることにしたい[ユーザー:ID] and methodCall

注:私はグルーヴィーでやりたい、効率的なやり方は何でしょうか

答えて

3

Groovyの、赤ちゃん:

def someFunctionCall = { "someFunctionCall(${it})" } 
assert "blah blah [user:1] ho ho [user:2] he he he" 
    .replaceAll(/\[user:(\d+)]/){ all, id -> 
    "<a href=\"${id}\">${someFunctionCall(id)}</a>" 
    } == "blah blah <a href=\"1\">someFunctionCall(1)</a> ho ho <a href=\"2\">someFunctionCall(2)</a> he he he" 
+0

があなたの前の説明のおかげで解決策を考え出すことができました – user602865

1

私はグルーヴィー知りませんが、PHPで、それは次のようになります。

<?php 
$string = 'blah blah [user:1] ho ho [user:2] he he he'; 
$pattern = '/(.*)\[user:(\d+)](.*)\[user:(\d+)](.*)/'; 
$replacement = '${1}<a href=\'${2}\'>someFunctionCall(${2})</a>${3}<a href=\'${4}\'>someFunctionCall(${4})</a>${5}'; 
echo preg_replace($pattern, $replacement, $string); 
?> 
関連する問題