gpt4 book ai didi

regex - 正则表达式提取字符串的一部分

转载 作者:行者123 更新时间:2023-12-04 17:23:15 26 4
gpt4 key购买 nike

我有一个形式为的字符串

Foo
"Foo"
"Some Foo"
"Some Foo and more"

我需要提取值 Foo这是在引号中,可以被任意数量的字母数字和空格字符包围。所以,对于上面的例子,我希望输出是
<NoMatch>
Foo
Foo
Foo

我一直在努力让它发挥作用,这是我迄今为止使用前瞻/后视引用的模式。这适用于 "Foo"但不是其他人。
(?<=")Foo(?=")

进一步扩展到
(?<=")(?<=.*?)Foo(?=.*?)(?=")

不起作用。

任何帮助将不胜感激!

最佳答案

如果引号正确平衡并且带引号的字符串没有跨越多行,那么您可以简单地查看字符串以检查后面是否有偶数个引号。如果这不是真的,我们知道我们在一个带引号的字符串中:

Foo(?![^"\r\n]*(?:"[^"\r\n]*"[^"\r\n]*)*$)

说明:
Foo          # Match Foo
(?! # only if the following can't be matched here:
[^"\r\n]* # Any number of characters except quotes or newlines
(?: # followed by
"[^"\r\n]* # (a quote and any number of non-quotes/newlines
"[^"\r\n]* # twice)
)* # any number of times.
$ # End of the line
) # End of lookahead assertion

现场观看 regex101.com

关于regex - 正则表达式提取字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16733230/

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