首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >REGEX获取特定字符串和编号

REGEX获取特定字符串和编号
EN

Stack Overflow用户
提问于 2021-09-27 15:23:24
回答 2查看 60关注 0票数 0

我有以下txt文件:

代码语言:javascript
运行
复制
VIII.  LOCATIONS:  OLA Handbook 1300.8, OPEN ARMS
                OLA Handbook 1300.21, BIG BROTHER
                

9.  RESTAURANTS:  ARBYS 22RX-60-81, same subject, dated March 20, 2018.

但我想用OLA Handbook和它后面的数字来匹配任何地方。但也在Locations部分下(所以在LOCATIONS:之后的文本)

例如,预期输出将是:我如何在regex中执行此操作?

代码语言:javascript
运行
复制
 OLA Handbook 1300.8
 OLA Handbook 1300.21

到目前为止我只做了

代码语言:javascript
运行
复制
(?=LOCATIONS).*$

但我对如何继续感到困惑。

我正在使用https://regex101.com/测试我的字符串,而txt文件来自notepad ++。

EN

回答 2

Stack Overflow用户

发布于 2021-09-27 17:30:06

在notepad++中,您可以利用\G锚点来获得连续的匹配。

代码语言:javascript
运行
复制
(?s)(?:\bLOCATIONS:|\G(?!^)).*?\b\KOLA\s+Handbook\s+\d+(?:\.\d+)\b

在部分中,模式与以下内容匹配:

  • (?s)内联修饰符,点匹配newline
  • (?:非捕获组
    • \bLOCATIONS:逐字匹配,前面有一个字边界,以防止部分match
    • | Or
    • \G(?!^)断言前一个匹配结束时的位置,而不是该start

处的位置

  • )尽可能关闭非捕获group
  • .*?匹配A单词边界,然后使用\K清除当前匹配缓冲区(在now)
  • OLA\s+Handbook\s+匹配文本之前,忽略匹配的内容,其中chars
  • \d+(?:\.\d+)\b匹配一个或多个空格chars
  • \b\K \s+匹配1+数字和一个可选的小数部分和一个单词边界

Regex demo

票数 1
EN

Stack Overflow用户

发布于 2021-09-28 14:45:23

你有没有试过这个耗尽的代码?

查找:(ola.*\d)|.?

全部替换:$1

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

https://stackoverflow.com/questions/69349221

复制
相关文章

相似问题

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