gpt4 book ai didi

regex - 如何组合正则表达式环视表达式

转载 作者:行者123 更新时间:2023-12-01 03:35:52 25 4
gpt4 key购买 nike

对于此示例文本:

The quick brown fox jumps over the lazy dog" is an 1*** English-language 2*** pangram—a phrase that contains all of the letters of the alphabet. It is commonly used for touch-typing practice. It is also used to test typewriters and computer keyboards, show fonts, and other applications involving all of the letters in the 3*** English alphabet 4***.


我需要一个正则表达式来仅在许多 x*** 标记之间进行匹配,同时去除前导和尾随空格。如果我对正则表达式的有限了解是正确的,那么结果应该匹配到两个单独的环视组中。

English-language

English alphabet


我有两个单独工作但不能同时工作的表达式:
(?<=1\*\*\*\s).*(?=\s2\*\*\*)
....
(?<=3\*\*\*\s).*(?=\s4\*\*\*)
我尝试了多种方法将它们组合在一个表达式中,但结果不正确。例如
(?<=1\*\*\*\s).*(?=\s2\*\*\*)\w+(?<=3\*\*\*\s).*(?=\s4\*\*\*)

NO MATCHES


我应该指出,我可以控制 token 格式,因此可以根据正则表达式中的易用性推荐一种。它只需要包含一个主要是非字母数字字符的序列,因此它不会在数据中本地找到。我的猜测是我可能至少需要两个 token ;一开始一结束。
编辑:
我已经取得了进展,但我的正则表达式引擎的行为与 regex101 不同:
(?<=1\*\*\*\s)(.*)(?=\s2\*\*\*).*?(?<=3\*\*\*\s)(.*)(?=\s4\*\*\*)
结果是:

English-language 2*** 3*** English-language


为什么?如何纠正?

最佳答案

(?<=[1-9]\*\*\*)\s*(.*?)(?=\s*[1-9]\*\*\*)

您可以使用它并获取 group 1 .见演示。

https://regex101.com/r/cZ0sD2/9

如果你只想要 2火柴使用
(?<=[13]\*\*\*)\s*(.*?)(?=\s*[24]\*\*\*)

关于regex - 如何组合正则表达式环视表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34988200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com