gpt4 book ai didi

如果字符串中的多个选项中只有一个匹配项,则正则表达式匹配

转载 作者:行者123 更新时间:2023-12-05 01:12:12 30 4
gpt4 key购买 nike

是否有一种模式可以从字符串中的多个选项中查找是否只有一个匹配项?

假设我们有以下潜在匹配列表:

`foo|bar|baz`

我们有字符串:

`Foo bar, Cambaz!` // shoud not match due to multiple findings
`My bar, good!` // shoud match for `bar`
`My friend, Cambaz!` // shoud match for baz

不区分大小写。

最佳答案

使用

(?i)^(?:(?!foo|bar|baz).)*\K(?:foo|bar|baz)(?!.*(?:foo|bar|baz))

proof .

匹配一些与第一个匹配项(^(?:(?!foo|bar|baz).)*)之前不匹配的任何备选文本,省略匹配的文本(\K),匹配列表中的单词((?:foo|bar|baz)),然后检查那里文本后面的列表中没有任何单词 ( (?!.*(?:foo|bar|baz)) )。

(?i) - 不区分大小写。

带子程序的简化版:

(?i)^(?:(?!(foo|bar|baz)).)*\K\g<1>(?!.*\g<1>)

another proof

\g<1>代表 (foo|bar|baz)模式。

关于如果字符串中的多个选项中只有一个匹配项,则正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62415551/

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