【问题标题】:All Characters Around Keyword but Stop at Spaces关键字周围的所有字符,但停在空格处
【发布时间】:2018-10-16 15:58:42
【问题描述】:

OPSDTLHDR 1000ACTIVE MATCHSOMETHINGSOMETHING

INPTSTHDR AKKCCT_APSMATCHSOMETHING

在上图中,关键字是“MATCH”。我想要 MATCH 周围的一切,但我需要在空格处停下来。

从第一行开始,我需要 MATCHSOMETHINGSOMETHING,从第二行开始需要 AKKCCT_APMATCHSOMETHING。

如果(MATCH)\w+,MATCHSOMETHINGSOMETHING 可以通过,但只能从第二行获取 MATCHSOMETHING。

如果.+?(MATCH)\w+,我会取回这两行。

如果\w+?(MATCH)\w+,我会返回 AKKCCT_APMATCHSOMETHING 但一开始什么都没有。

我正在使用 Atom 文本编辑器。

【问题讨论】:

  • 不要显示带有文字的图像,我们不能复制/粘贴它们进行测试。

标签: regex string atom-editor


【解决方案1】:

模式(MATCH)\w+ 将在捕获组中捕获MATCH,后跟一个或多次匹配AKKCCT_APMATCHSOMETHING 中的MATCHSOMETHING 的单词字符

使用.+?(MATCH)\w+ 将匹配两行,因为您使用的点也匹配空格,因此将匹配到OPSDTLHDR 1000ACTIVE MATCH,然后匹配其余的单词字符。

\w+?(MATCH)\w+ 不匹配第一个,因为\w+ 匹配MATCH 之前的至少一个单词字符

您可以不匹配空格字符 \S 零次或多次,然后匹配 MATCH,然后再匹配零次或多次不匹配空格字符:

\S*MATCH\S*

Regex demo

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多