我有这个PHP代码
$filename = "verbs.php"; // http://alylores.x10.mx/vega/verbs2.php
$handle = fopen($filename, "r");
$verbs = fread($handle, filesize($filename));
fclose($handle);
Run Code Online (Sandbox Code Playgroud)
我使用PHP explode()函数
将单词拆分为数组
$verbslist = explode(",", $verbs);
我也有一个字符串,如:
$sentence = "Where is Phisz' dog?";
然后我用这个str_replace()函数从句子中删除动词和一些特定的单词,这样唯一的左边就是主语.
$newsentence = str_replace($verbslist,"",$sentence);
但结果是:
new Sentence:Phz' dog?// ison Phisz也被删除了.
并且我发现问题在于Phisz包含的is内容也被删除了str_replace().
我想要的是如何从句子中删除单词/ vebs而不影响其他单词.我的意思是删除EXACT VERB/WORD .....并且在不敏感的情况下......
预期的结果将是这样的
新句子: Phisz' dog?
使用正则表达式/\bword\b/将仅替换单词作为整体.\b表示单词边界.所以你可以这样做:
foreach ($verblist as &$verb) {
$verb = '/\b' . preg_quote($verb, '/') . '\b/';
}
$newsentence = preg_replace($verblist, '', $sentence);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1691 次 |
| 最近记录: |