首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只提取某些单词不存在的行。

只提取某些单词不存在的行。
EN

Stack Overflow用户
提问于 2021-11-02 10:03:42
回答 3查看 39关注 0票数 1

我只需要提取以8位数和一个空格,然后是2位开始的行,然后忽略单词TDS

输入

代码语言:javascript
复制
91298254 02/07/2021 91298254 3181753640RE,MAN-1 200,000.00
91298254 20/09/2021 TDS -577.19
91298268 03/07/2021 91298268 3181753647RE,MAN-2 166,861.00
91298268 20/09/2021 TDS -130.37

输出

代码语言:javascript
复制
91298254 02/07/2021 91298254 3181753640RE,MAN-1 200,000.00
91298268 03/07/2021 91298268 3181753647RE,MAN-2 166,861.00

我尝试过\b\d{8} \d{2}.*,它给了我8位空间和2位数的所有行。

这里需要你的建议。

你好,曼杰什

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-11-02 10:09:46

您可以使用

代码语言:javascript
复制
^\d{8} \d{2}(?!.*\bTDS\b).*

regex演示。详细信息

  • ^ -字符串的开始
  • \d{8} \d{2} -八位数,空格,两位数
  • (?!.*\bTDS\b) -如果在当前位置右侧有除行中断字符以外的零个或多个字符,而TDS作为一个完整的单词,则会导致匹配失败。
  • .* -剩下的部分。
票数 0
EN

Stack Overflow用户

发布于 2021-11-02 10:16:30

这是可行的,可以捕获带有TDS的线条。

代码语言:javascript
复制
(?<=^|\n).*TDS.*(?=\n|$)

Regex 101演示

票数 0
EN

Stack Overflow用户

发布于 2021-11-02 10:19:07

代码语言:javascript
复制
const str =   `91298254 02/07/2021 91298254 3181753640RE,MAN-1 200,000.00
91298254 20/09/2021 TDS -577.19
91298268 03/07/2021 91298268 3181753647RE,MAN-2 166,861.00
91298268 20/09/2021 TDS -130.37`

const result = str.replace(/(^|\n)\d{8}\s+\d{2}\/\d{2}\/\d{4}\s+TDS[^\n]*/g, '')
console.log(result)

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

https://stackoverflow.com/questions/69808524

复制
相关文章

相似问题

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