首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在重新排序行之后,插入空行,更改顺序第一和第二连字符。

在重新排序行之后,插入空行,更改顺序第一和第二连字符。
EN

Stack Overflow用户
提问于 2021-11-20 10:42:08
回答 1查看 66关注 0票数 0

我以前的问题贴在

在每次更改名称后,我如何获得行间隔?

托托提出了一个很好的解决方案,谢谢

但是,有时我可以更改在第二个连字符"-“之后插入一行。

当我通过在第一连字符和第二连字符之间转换顺序来改变顺序时

我想得到这个:

在此之前:

鲍勃·克莱特里-8月- 6325.32 -波特兰,OR,美国

约翰·克莱特里-10月份- 7289.25 -波特兰,OR,美国

Alan 11月- 12.582.00 -波特兰,OR,美国

彼得·芬利-9月- 5312.00 -新泽西,美国

彼得·芬利-10月- 7325.00 -新泽西,美国

彼得·芬利-11月- 8240.00 -新泽西,美国

杰克诺顿-10月- 12425.60 -纽约,美国

席琳·诺顿-11月- 13328.32 -纽约,美国

与Regex重新订购:

第一步

查找:^(.+?)s-s+(.+?)s-s+(.+?)s-s

取代:$2 - $1 - $3

注释:我在连字符前后附加空格"-“表示名称复合,复合示例:让-克劳德和连字号在URL等.

在第一步之后。

8月-鲍勃·克莱特里-6325.32波特兰,OR,美国

10月-- john Cleatry -7289.25波特兰,OR,美国

11月11日-艾伦·克莱特里-12.582.00波特兰,OR,美国

9月-彼得·芬利-美国新泽西州5312.00

10月-彼得·芬利-美国新泽西州

11月-彼得·芬利-8240.00新泽西,美国

10月-杰克·诺顿-12425.60纽约,美国

11月-席琳·诺顿-13328.32纽约,美国

我想得到这个:

8月-鲍勃·克莱特里-6325.32波特兰,OR,美国

10月-- john Cleatry -7289.25波特兰,OR,美国

11月11日-艾伦·克莱特里-12.582.00波特兰,OR,美国

9月-彼得·芬利-美国新泽西州5312.00

10月-彼得·芬利-美国新泽西州

11月-彼得·芬利-8240.00新泽西,美国

10月-杰克·诺顿-12425.60纽约,美国

11月-席琳·诺顿-13328.32纽约,美国

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-20 10:57:45

您可以在重新排序之前添加一个步骤,以匹配所有以以下方式开头的行:

代码语言:javascript
复制
^(.+?)\s-\s.*(?:\R\1.*)+

Regex演示

然后在替换中,使用被换行符包围的完全匹配。

代码语言:javascript
复制
\n$0\n

对于第二步,您可以使用已经在问题中使用的方法。

假设已经没有换行符,并且如果您不希望在替换时在字符串的开头或末尾添加额外的换行符,则可以使用条件替换。

找出什么:

代码语言:javascript
复制
(?:(^)|\R)((.+?)\s-\s.*(?:\R\3.*)+)(?:(\R)|$)

代之以:

代码语言:javascript
复制
(?{1}:\n\n)$2(?{4}\n\n:)

为了重新订购

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70045155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档