是否有一个奇异的正则表达式,可以用在文本编辑器的搜索/替换对话框中,以反转列表中项目的顺序?正则表达式颠倒顺序的列表?
举例来说,使用这个列表:
- 第一项
- 第二项
- 第三项
在这样的EditPad文本编辑器中选择它,弹出的搜索和替换框中,应用正则表达式(作为循环运行或不运行)并将其变为:
- 第三项
- 第二项
- 第一项
可以这样做?
是否有一个奇异的正则表达式,可以用在文本编辑器的搜索/替换对话框中,以反转列表中项目的顺序?正则表达式颠倒顺序的列表?
举例来说,使用这个列表:
在这样的EditPad文本编辑器中选择它,弹出的搜索和替换框中,应用正则表达式(作为循环运行或不运行)并将其变为:
可以这样做?
这不能通过正则表达式来完成。
我建议使用像Perl这样的语言,您可以在其中使用正则表达式来拆分列表并将其按相反顺序写回。
只有在列表中有项目的固定,已知数量n
,甚则变正则表达式作为n
变得更复杂。 (主要难点通常是在引擎中得到一个字面换行符。)
使用脚本语言可以很容易地生成这一系列日益复杂的正则表达式;然而,一旦你使用脚本语言,它几乎肯定会更容易使用它来翻转本身!
在MSDOS
SORT /R <originallist.txt> resortedlist.txt
这不会颠倒输入的顺序,这会以相反的顺序对输入进行排序。不是一回事。 – Dan 2014-10-12 01:43:24
我知道它已经很长一段时间,因为这是问......但这个答案是不是在这里。
原文:“敏捷的棕色狐狸”
查找:(\ w +)\ s
取决于你如何格式的文本编辑器中的列表,你可以沿着这些路线做些什么(\ w +)\ s(\ w +)\ s(\ w +)
替换:$ 4 $ 3 $ 2 $ 1
输出: “福克斯布朗快速的” (可在记事本++,只要确保你选择“正则表达式”选项)
相当于给javascript:
var string = "The Quick Brown Fox";
string.replace(/(\w+)\s(\w+)\s(\w+)\s(\w+)/,"$4 $3 $2 $1");
很好的参考是https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
我会感到惊讶,如果它能够在一个单一的表达来实现;无论如何,它听起来都不像RegEx的工作。 – Jay 2010-05-30 18:22:00