假设您有纯文本输入。在该文本中,您可以查找关键字。说出“成本”、“位置”和“ Material ”,您要过滤掉这些关键字后面的单词,以便稍后可以将它们存储在数据库中包含这些关键字的列下。
你会怎么做?我正在考虑将字符串转换为数组,然后进行搜索并使用键值来计算出关键字之间的单词范围。这只是一个想法,有人有更好的吗?
输入示例:
Cost £45 Materials glue, plastic, wood and nails Location Sale, Manchester North England.
内容在变量中像这样分组:
$cost = "£45";
$materials = "glue, plastic, wood and nails";
$location = "Sale, Manchester North England";
最佳答案
您可以使用此正则表达式来匹配您的值:
\s*\bCost\s+(?<cost>.+?)\s*\bMaterials\s+(?<material>.+?)\s*\bLocation\s+(?<location>.+)
代码:
$re = '/\s*\bCost\s+(?<cost>.+?)\s*\bMaterials\s+(?<material>.+?)\s*\bLocation\s+(?<location>.+)/';
preg_match($re, $str, $matches);
print_r($matches);
您将在 $matches
数组中获取匹配的值,其中索引名称指示其匹配的值。
关于php - 在 PHP 中,从纯文本中过滤掉单词集的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32548111/