首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要正则表达式来删除模式/字符串

需要正则表达式来删除模式/字符串
EN

Stack Overflow用户
提问于 2013-08-07 09:27:08
回答 3查看 114关注 0票数 1

我有以下案文

1样式索引法线+速递新T201_LLR_001|2样式索引法线+信使新应接受三个指针。

我需要转换这个文本才能得到三个独立的输出

  • T201_LLR_001
  • 将接受这三个指针
  • SSC_01_SRS_0001

我使用了以下常规(\S+_LLR_\d+)(.+)\t(SSC_.+)*

以获得以下输出

  • T201_LLR_001
  • 2样式的普通+信使新应接受这三个指针。
  • SSC_01_SRS_0001

但是,我需要去掉文本|2 Style Indented Normal + Courier New" and "|3 Style Indented Normal + Courier New

在正则表达式中有可能吗?我不知道如何使用(?!TEXT)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-07 13:03:40

对于那些没有注意到的人,我看到字体和你想要的字符串之间有一个选项卡,这使得问题变得更容易了。

这应该给你你想要的:

代码语言:javascript
复制
([^_\s]+_LLR_\d+)[^\t]*\t([^|]*)[^\t]*\t(SSC_.+)

解释:

我将\S (非空白)更改为[^_\s] (不是下划线或空白)。

然后消费T201_LLR_001

然后,您将使用所有的东西,包括下一个选项卡,它将是|2 Style Indented Normal + Courier New

然后,您将使用|中的所有内容,这将是Shall accept the three pointers.,并将其放在方括号中存储在一个组中。

然后,您将使用所有的东西,包括下一个选项卡,它将是|3 Style Indented Normal + Courier New

然后使用SSC_01_SRS_0001并将其放在一个组中。

Java测试正确地打印出:

代码语言:javascript
复制
T201_LLR_001
Shall accept the three pointers.
SSC_01_SRS_0001
票数 0
EN

Stack Overflow用户

发布于 2013-08-07 09:51:37

使用另一个组来捕获|2 Style Indented Normal + Courier New|3 Style Indented Normal + Courier New。如果您愿意,甚至可以使用非捕获组(?:)。

票数 0
EN

Stack Overflow用户

发布于 2013-08-07 10:09:21

试试这个(.NET):

代码语言:javascript
复制
(?<=\|\d \w* \w* \w* \+ [a-z-A-Z0-9 ]*\t)[\w ]*

或者这个:

代码语言:javascript
复制
(?<=\|\d [a-zA-Z+ ]*\t)[\w ]*
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18099647

复制
相关文章

相似问题

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