私が作成したいくつかのカスタム ショートコードをサポートするために、Ruby 1.8.7 でいくつかのテキスト処理に取り組んでいます。ここに私のショートコードの例をいくつか示します:
[CODE first-part]
[CODE first-part second-part]
次の正規表現を使用して取得しています
text.gsub!( /\[CODE (\S+)\s?(\S?)\]/i, replacementText )
問題はこれです:正規表現は次のテキストでは機能しません:
[CODE first-part][CODE first-part-again]
結果は次のとおりです。
1. first-part][CODE
2. first-part-again
\s?
最初のスペースではなく、最後のスペースに到達するまで検索するのは、正規表現の問題のある部分であるようです。正規表現を次のように変更すると:
\[CODE ([\w-]+)\s?(\S*)\]/i
それは正常に動作します。私が持っている唯一の懸念は、 URL セーフ文字と一致することを確認したいので、すべて\w
vsです。\s
\w
完全に有効な説明があると確信していますが、それは私にはわかりません。何か案は?ありがとう!