重新排序后,插入一个空行,更改第一个和第二个连字符的顺序
After re-order line, insert a blank line, change order first and second hyphen
我在
中的上一个问题post
How can I get a line break After each name change
Toto Thank You
提出了一个很好用的解决方案
但是,有时我可以更改在第二个连字符“-”之后插入一行“-”
当我通过颠倒第一个和第二个连字符
之间的顺序来更改顺序时
我想得到这个:
之前:
Bob Cleatry - 八月 - 6325.32 - 美国俄勒冈州波特兰
john Cleatry - 十月 - 7289.25 - 美国俄勒冈州波特兰
Alan Cleatry - 11 月 - 12.582.00 - 美国俄勒冈州波特兰
Peter J. Finley - 9 月 - 5312.00 - 美国新泽西州
Peter J. Finley - 十月 - 7325.00 - 美国新泽西州
Peter J. Finley - 十一月 - 8240.00 - 美国新泽西州
杰克诺顿 - 十月 - 12425.60 - 美国纽约
celine Norton - 十一月 - 13328.32 - 美国纽约
使用正则表达式重新排序:
第一步
查找:^(.+?)\s-\s+(.+?)\s-\s+(.+?)\s-\s
替换:$2 - $1 - $3
注意:我在连字符“-”前后附加 space 以消除名称复合、复合 ex:jean-claude 和 URL 等中的连字符...
在第 1 步之后。
八月 - Bob Cleatry - 6325.32美国俄勒冈州波特兰
十月 - john Cleatry - 7289.25美国俄勒冈州波特兰
十一月 - Alan Cleatry - 12.582.00美国俄勒冈州波特兰
九月 - Peter J. Finley - 5312.00美国新泽西州
十月 - Peter J. Finley - 7325.00 美国新泽西州
十一月 - Peter J. Finley - 8240.00 美国新泽西州
十月 - 杰克诺顿 - 12425.60美国纽约
十一月 - celine Norton - 13328.32美国纽约
我想要这个:
8 月 - Bob Cleatry - 6325.32 美国俄勒冈州波特兰
十月 - john Cleatry - 7289.25美国俄勒冈州波特兰
十一月 - Alan Cleatry - 12.582.00美国俄勒冈州波特兰
9 月 - Peter J. Finley - 5312.00 美国新泽西州
十月 - Peter J. Finley - 7325.00 美国新泽西州
十一月 - Peter J. Finley - 8240.00 美国新泽西州
10 月 - 杰克诺顿 - 12425.60 美国纽约
十一月 - celine Norton - 13328.32美国纽约
您可以在重新排序之前添加一个步骤,匹配所有以例如开头的行:
^(.+?)\s-\s.*(?:\R.*)+
然后在替换中,使用换行符包围的完整匹配。
\n[=11=]\n
对于第二步,您可以使用您已经在问题中使用的方法。
假设已经没有换行符,如果你不想在替换时在字符串的开头或结尾添加额外的换行符,你可以使用条件替换。
查找内容:
(?:(^)|\R)((.+?)\s-\s.*(?:\R.*)+)(?:(\R)|$)
替换为:
(?{1}:\n\n)(?{4}\n\n:)
重新订购
我在
中的上一个问题post
How can I get a line break After each name change
Toto Thank You
提出了一个很好用的解决方案
但是,有时我可以更改在第二个连字符“-”之后插入一行“-”
当我通过颠倒第一个和第二个连字符
之间的顺序来更改顺序时
我想得到这个:
之前:
Bob Cleatry - 八月 - 6325.32 - 美国俄勒冈州波特兰
john Cleatry - 十月 - 7289.25 - 美国俄勒冈州波特兰
Alan Cleatry - 11 月 - 12.582.00 - 美国俄勒冈州波特兰
Peter J. Finley - 9 月 - 5312.00 - 美国新泽西州
Peter J. Finley - 十月 - 7325.00 - 美国新泽西州
Peter J. Finley - 十一月 - 8240.00 - 美国新泽西州
杰克诺顿 - 十月 - 12425.60 - 美国纽约
celine Norton - 十一月 - 13328.32 - 美国纽约
使用正则表达式重新排序:
第一步
查找:^(.+?)\s-\s+(.+?)\s-\s+(.+?)\s-\s
替换:$2 - $1 - $3
注意:我在连字符“-”前后附加 space 以消除名称复合、复合 ex:jean-claude 和 URL 等中的连字符...
在第 1 步之后。
八月 - Bob Cleatry - 6325.32美国俄勒冈州波特兰
十月 - john Cleatry - 7289.25美国俄勒冈州波特兰
十一月 - Alan Cleatry - 12.582.00美国俄勒冈州波特兰
九月 - Peter J. Finley - 5312.00美国新泽西州
十月 - Peter J. Finley - 7325.00 美国新泽西州
十一月 - Peter J. Finley - 8240.00 美国新泽西州
十月 - 杰克诺顿 - 12425.60美国纽约
十一月 - celine Norton - 13328.32美国纽约
我想要这个:
8 月 - Bob Cleatry - 6325.32 美国俄勒冈州波特兰
十月 - john Cleatry - 7289.25美国俄勒冈州波特兰
十一月 - Alan Cleatry - 12.582.00美国俄勒冈州波特兰
9 月 - Peter J. Finley - 5312.00 美国新泽西州
十月 - Peter J. Finley - 7325.00 美国新泽西州
十一月 - Peter J. Finley - 8240.00 美国新泽西州
10 月 - 杰克诺顿 - 12425.60 美国纽约
十一月 - celine Norton - 13328.32美国纽约
您可以在重新排序之前添加一个步骤,匹配所有以例如开头的行:
^(.+?)\s-\s.*(?:\R.*)+
然后在替换中,使用换行符包围的完整匹配。
\n[=11=]\n
对于第二步,您可以使用您已经在问题中使用的方法。
假设已经没有换行符,如果你不想在替换时在字符串的开头或结尾添加额外的换行符,你可以使用条件替换。
查找内容:
(?:(^)|\R)((.+?)\s-\s.*(?:\R.*)+)(?:(\R)|$)
替换为:
(?{1}:\n\n)(?{4}\n\n:)
重新订购