gpt4 book ai didi

regex - 字符串中最后一次使用单词的正则表达式

转载 作者:行者123 更新时间:2023-12-01 10:49:08 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何使用单词作为分隔符来获取字符串的尾端,但该单词可以在字符串中的任何位置使用。所以只有最后一次使用才会开始抓取。

示例:明天去办公室,通过 safeway BY 取牛奶

我想在明天之前获取 而不是其他 by

这是我试图使之更健壮的正则表达式:

$pattern = '/^(.*?)(@.*?)?(\sBY\s.*?)?(@.*)?$/i';

我认为负前瞻会做到这一点,但我以前从未使用过

谢谢!

最佳答案

我不确定正则表达式中的其他内容是什么,但这是我会使用的:

$pattern = '/\bby\s(?!.*\bby\b).*?$/i';

regex101 demo

\b 是单词边界,只会匹配 \w\W 字符或字符串开头/结尾。

by 按字面意思匹配 by

\s 匹配空格(也匹配换行符、制表符、换页符、回车符)

(?!.*\bby\b) 是否定先行,如果前面有另一个单词 by ,它将阻止匹配。

.*?$ 是获取字符串的剩余部分,直到字符串结束。

关于regex - 字符串中最后一次使用单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22593607/

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