我有以下txt文件:
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中执行此操作?
OLA Handbook 1300.8
OLA Handbook 1300.21
到目前为止我只做了
(?=LOCATIONS).*$
但我对如何继续感到困惑。
我正在使用https://regex101.com/测试我的字符串,而txt文件来自notepad ++。
发布于 2021-09-27 17:30:06
在notepad++中,您可以利用\G
锚点来获得连续的匹配。
(?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+数字和一个可选的小数部分和一个单词边界发布于 2021-09-28 14:45:23
你有没有试过这个耗尽的代码?
查找:(ola.*\d)|.?
全部替换:$1
https://stackoverflow.com/questions/69349221
复制相似问题