正则表达式 – 正则表达式提取部分字符串
发布时间:2020-12-14 02:29:58 所属栏目:百科 来源:网络整理
导读:我有一个字符串的形式 Foo"Foo""Some Foo""Some Foo and more" 我需要提取引号中的值Foo,并且可以被任意数量的字母数字和空格字符包围.所以,对于上面的例子,我希望输出 NoMatchFooFooFoo 我一直试图让这个工作,这是我到目前为止使用lookahead / lookbehind引
我有一个字符串的形式
Foo "Foo" "Some Foo" "Some Foo and more" 我需要提取引号中的值Foo,并且可以被任意数量的字母数字和空格字符包围.所以,对于上面的例子,我希望输出 <NoMatch> Foo Foo Foo 我一直试图让这个工作,这是我到目前为止使用lookahead / lookbehind引用的模式.这适用于“Foo”但不适用于其他人. (?<=")Foo(?=") 进一步扩大到这个 (?<=")(?<=.*?)Foo(?=.*?)(?=") 不起作用. 任何帮助将不胜感激!
如果引号被正确平衡并且引用的字符串不跨越多行,那么您可以简单地向前看字符串以检查是否跟随偶数引号.如果不是这样,我们知道我们在一个带引号的字符串中:
Foo(?![^"rn]*(?:"[^"rn]*"[^"rn]*)*$) 说明: Foo # Match Foo (?! # only if the following can't be matched here: [^"rn]* # Any number of characters except quotes or newlines (?: # followed by "[^"rn]* # (a quote and any number of non-quotes/newlines "[^"rn]* # twice) )* # any number of times. $ # End of the line ) # End of lookahead assertion 在regex101.com现场直播 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |