1

Javascript で正規表現を使用して、試合イベントで LIFO バッファを作成するにはどうすればよいですか?
次に例を示します。

入力:

4   Mål Vålerenga, 1 - 0 Torgeir Børven. Målgivende pasning Daniel Fredheim Holm.<br> Dagens kaptein, Fredheim Holm, med en smart stikker til Børven, som drar seg fri og tupper ballen vakkert i lengste hjørne. Vålerenga innleder jubileet med 1-0!<br>
3    Fellah spilles fri på høyreflanken, men assistentdommeren vinker som om det skulle være 100-årsjubileum og 17. mai på en gang. Offside.
2   Corner Sarpsborg 08, Gudmundur Thórarinsson. Klareres.<br>
1    Kampen starter med forbrødring mellom keeperne. Kongshavn banker ballen helt over til kollega Sukke.<br>

出力は次のようになります。

1    Kampen starter med forbrødring mellom keeperne. Kongshavn banker ballen helt over til kollega Sukke.<br>
2   Corner Sarpsborg 08, Gudmundur Thórarinsson. Klareres.<br>
3    Fellah spilles fri på høyreflanken, men assistentdommeren vinker som om det skulle være 100-årsjubileum og 17. mai på en gang. Offside.<br>
4   Mål Vålerenga, 1 - 0 Torgeir Børven. Målgivende pasning Daniel Fredheim Holm.<br>
4

1 に答える 1

0

正規表現だけでは (少なくとも JavaScript の正規表現では) 不可能ですが、正規表現のマッチングまたは分割を使用できますreverse

入力が質問のように単純な場合は、一致する代わりに分割できます。各行の先頭で文字列を分割するだけです。

result = str.split(/^/m).reverse().join("");

より複雑な状況では、分割はそれほど簡単ではない可能性があり、実際に一致させる必要があります。あなたの例を引き続き使用すると、行を一致させることができます.*\n.改行を一致させることはできないため)。その場合、使用できます

result = str.match(/.*\n/g).reverse().join("");

ここでの問題は、一致が入力文字列全体を確実にカバーするようにすることです。そうしないと、処理中に文字が失われます (このsplitアプローチでは発生しませんが、JavaScript 正規表現で取り組むのが非常に困難な問題もありますsplit)。

于 2013-08-03T10:41:33.393 に答える