我有一长列表(约40行),如:
tbxName.Text = clientName
tbxCity.Text = clientCity
tbxStreet.Text = clientStreet
...
etc
我想以相反的方式得到它而不用手写<复制/粘贴
clientName = tbxName.Text
clientCity = tbxCity.Text
clientStreet = tbxStreet.Text
....
我希望忽略名称和=符号之间的空格,以便我的条目可以是clientName = tbxName.Text,clientName = tbxName.Text,clientName = tbxName.Text,clientName = tbxName.Text等等
是否可以使用Regex公式?
答案 0 :(得分:2)
正则表达式将是:
([^=\s]+)\s*=\s*(.+)$
解释很简单: *一个或多个不是空格或等号的字符 * 0或更多的空格字符 *等号 * 0或更多的空格字符 *直到字符串结尾的所有其他内容
替换字符串将是
\2 = \1
答案 1 :(得分:1)
s/(.*)=(.*)/\2=\1/
^ ^^^ ^ ^ ^
| ||| | | | First captured group
| ||| | | Second captured group
| ||| | Literal = sign
| ||| Repeat 0 or more times
| || Match any character
| | Begin capture group
| Substitute (in perl)
如果你不关心间距。
答案 2 :(得分:0)
更好地编写控制台应用程序并使用下面的算法
1. Read all lines
2. Split on newline
3 Foreach line split expression on '='(equal) sign
4 Write new line formatted second = first
答案 3 :(得分:0)
我经常将Sublime Text 3用于此目的。
只需在编辑器中插入代码,然后选择查找&gt;替换...切换到正则表达式。 将以下正则表达式插入查找内容:
(.+)\s*=\s*(.+)
更换为替换为:
\2 = \1
答案 4 :(得分:0)
这是我一直使用sublimetext的东西。特别是您可以使用multi select功能来执行此操作。
这个编辑器的学习曲线迫使一些人头疼,虽然答案只是一个谷歌,但一旦你开始用崇高的文字做事,你通常只会花费无数时间重复做它一个宝贵的工具。
对于这个特殊的问题,我会将这些行粘贴到编辑器中然后选择其中一个等号来命中alt + f3(或选择 - >快速查找全部)以获得所有等号上的多选游标然后抓取每个等于之后的文本,删除等号,粘贴每行开头的文本,并在它们之间添加一个等号。