4

Ruby の正規表現で bbcode をダイジェストする必要があります。

コマンドで要素を区切り、match正規表現を使用して/pattern/m改行を削除する必要があります。

たとえば、文字列内の私の bbcode は次のとおりです。

s="[b]Title[/b] \n Article text \n [b]references[/b]"

次にmatch、テキストの部分、特に と で囲まれたタイトルと参照部分を区切るために使用し[b]ます[/b]

t=s.match(/\[b\](.*)\[\/b\]/m)

(..)構文を使用して正規表現の文字列をキャッチし、特殊文字と文字\をエスケープするために使用します。文字列内の改行を取り除くことです。[]/m

次にt[1]含まれます:

"Title[/b] \n Artucle text \n [b]references"

の代わりに"Title"。の最初の出現で一致が停止しないためです[/b]t[2]同じ理由で、「参照」の代わりに nil です。

通常の bbcode タグで囲まれたテキスト部分を区切るにはどうすればよいですか?

4

2 に答える 2

9

?次のように貪欲でない演算子を使用します。

t=s.match(/[b](.*?)[/b]/m)
于 2013-06-04T00:34:58.983 に答える