javascript - RegEx - 匹配事件的 LIFO 缓冲区

标签 javascript regex lifo

如何使用 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>

最佳答案

单独使用正则表达式是不可能的(至少在 JavaScript 的正则表达式风格中),但您可以使用正则表达式匹配或拆分以及反向:

如果您的输入与问题中一样简单,那么您可以拆分而不是匹配。我们简单地在每行的开头分割字符串:

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

在更复杂的情况下,拆分可能并不那么容易,您实际上需要匹配。仍然使用您的示例,您可以将行与 .*\n 匹配(因为 . 无法匹配换行符)。在这种情况下,您可以使用

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

这里的问题是确保您的匹配将覆盖整个输入字符串 - 否则字符会在该过程中丢失(使用 split 方法不会发生这种情况 - 但有些问题将很难解决在 split 中使用 JavaScript 正则表达式进行处理)。

关于javascript - RegEx - 匹配事件的 LIFO 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18030179/

相关文章:

javascript - 使用 Javascript 函数创建 SVG 元素

javascript - 如何减少复制粘贴代码?重构?

Java正则表达式替换原始字符串中的组值

list - Scheme中后进先出列表的实现

c - 如何防止通过原子比较和交换实现的并发lifo堆栈中的损坏

javascript - 在 PhantomJS 中获取页面的标题

javascript - 如何将方法应用于整个对象文字?

jquery - 如何通过在 Twig 中搜索正则表达式来替换字符串?

jquery - Notepad++ 正则表达式 : Find all input tags without ID, 如果缺少则添加