首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Regex跳过字符之间的第二个字符串

用Regex跳过字符之间的第二个字符串
EN

Stack Overflow用户
提问于 2016-08-17 03:58:42
回答 2查看 593关注 0票数 1

我一直在研究regex的问题。我有很多行是这样格式化的:

代码语言:javascript
复制
3240985|#Apple.-+240538|34346|346356356|36433565|6agf8s89auf

最终目标应该如下所示:

代码语言:javascript
复制
#Apple.-+240538|6agf8s89auf

#Apple.-+240538是随机字符,6agf8s89auf是随机字母数字字符。

我一直在使用(.*?)[\|],用Notepad++中的空白字符替换我需要的部分,但是用我拥有的行数来完成它是不可能的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-17 04:24:21

这种字符串的正则表达式是(?:(?<=^)|(?<=\|))(\d+(?:$|\|))

演示:https://regex101.com/r/sO0fZ2/2

但是,在Notepad++中查找和替换可能存在一些问题,因为Notepad++只查找和替换字符串一次。其他一些文本编辑器,如,“崇高文本”,递归地查找和替换内容。但是,您可以通过多次单击“替换所有”按钮来简单地克服这一问题。

输入

单击“替换所有打开的文档”两次后的结果

在崇高文本中,只需单击一次即可达到此目的:

输入

结果

P.S.:我不知道Notepad++中是否有递归查找和替换内容的特性。你可以在谷歌上搜索。如果有类似的功能,那么您可以使用它。然而,我认为这不应该是一个问题,因为它只需要几次点击。

票数 1
EN

Stack Overflow用户

发布于 2016-08-17 06:36:41

有一种使用交替的简单方法。

代码语言:javascript
复制
^\d+\||\|\d+(?=\||$)

详细信息

  • ^\d+\| -分支1匹配字符串开头的块1+数字(\d+) (^)和后面的|
  • | -交替算子意义或
  • \|\d+(?=\||$) --文字管道(\|,必须转义)后面是1+数字(\d+),后面跟着文字管道或字符串末尾((?=...)是一种正的查找,不会提前regex索引,因此,仍然可以匹配具有相同模式的相邻匹配)。

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

https://stackoverflow.com/questions/38987884

复制
相关文章

相似问题

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