gpt4 book ai didi

用于围绕搜索短语的单词集合的 PHP 正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:39 24 4
gpt4 key购买 nike

您好,我正在尝试创建一个将执行以下操作的正则表达式

从一段文本中(当我说单词时)在搜索短语前抓取 5 个单词(如果那里只有 x 个单词,则抓取 x),在搜索短语后抓取 5 个单词(如果那里只有 x 个单词,则抓取 x)表示文本 block 中的单词或数字)

例如

欢迎来到 Stack Overflow!访问您的用户页面以设置您的姓名和电子邮件。

如果您要搜索“访问”,它将返回:欢迎来到堆栈溢出!访问您的用户页面进行设置

我的想法是在 php 中使用 preg_match_all 给我一堆搜索结果,显示搜索短语在文本中出现的位置,每次出现搜索短语。

提前致谢:D

在子注释中,如果您觉得有更好的方法可以得到我的结果,请随意将它扔进池中,因为我不确定这是我想到的第一种方法,做我需要做的事 :D

最佳答案

这个怎么样:

(\S+\s+){0,5}\S*\bvisit\b\S*(\s+\S+){0,5}

将在您的搜索词(在本例中为 visit)前后匹配五个“词”(但如果文本较短则接受较少)。

preg_match_all(
'/(\S+\s+){0,5} # Match five (or less) "words"
\S* # Match (if present) punctuation before the search term
\b # Assert position at the start of a word
visit # Match the search term
\b # Assert position at the end of a word
\S* # Match (if present) punctuation after the search term
(\s+\S+){0,5} # Match five (or less) "words"
/ix',
$subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];

我将“单词”定义为由至少一个空格分隔的一系列非空白字符。

搜索词应该是实际词(以字母数字字符开头和结尾)。

关于用于围绕搜索短语的单词集合的 PHP 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7743217/

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