正则表达式在常见单词删除模式期间忽略连字符的单词

发布于 2024-10-16 08:38:00 字数 215 浏览 5 评论 0原文

我有这个正则表达式,它从字符串($input)中删除常见单词($commonWords),我想调整它,以便它忽略连字符的单词这些有时包含常用词。

return preg_replace('/\b('.implode('|',$commonWords).')\b/i','',$input);

谢谢

I've got this regular expression which removes common words($commonWords) from a string($input) an I would like to tweak it so that it ignores hyphenated words as these sometimes contain common words.

return preg_replace('/\b('.implode('|',$commonWords).')\b/i','',$input);

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

月朦胧 2024-10-23 08:38:00

尝试

return preg_replace('/(?<!-)\b('.implode('|',$commonWords).')\b(?!-)/i','',$input);

否定环顾 表达式添加到正则表达式的开头和结尾,以便匹配仅当比赛前后没有破折号时才允许。

Try

return preg_replace('/(?<!-)\b('.implode('|',$commonWords).')\b(?!-)/i','',$input);

This adds negative lookaround expressions to the start and end of the regex so that a match is only allowed if there is no dash before or after the match.

独自←快乐 2024-10-23 08:38:00
preg_replace('/\b('.implode('|',$commonWords).'|\w-\w)\b/i','',$input);

\w 任何单词字符(字母、数字、下划线)
它将删除所有常用词以及所有带有连字符的单词。

preg_replace('/\b('.implode('|',$commonWords).'|\w-\w)\b/i','',$input);

\w Any word character (letter, number, underscore)
it'll remove all all the commonwords, AND all the words who've a hyphene.

黒涩兲箜 2024-10-23 08:38:00
return preg_replace('/(?<![-\'"])\b('.implode('|',$commonWords).')\b(?![-'"])i','',$input);

如果我们有更多的符号需要转义,上面的方法将会起作用。

return preg_replace('/(?<![-\'"])\b('.implode('|',$commonWords).')\b(?![-'"])i','',$input);

The above will work if we have more symbols to be escaped.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文