正则表达式在常见单词删除模式期间忽略连字符的单词
我有这个正则表达式,它从字符串($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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试
将 否定环顾 表达式添加到正则表达式的开头和结尾,以便匹配仅当比赛前后没有破折号时才允许。
Try
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.
\w 任何单词字符(字母、数字、下划线)
它将删除所有常用词以及所有带有连字符的单词。
\w Any word character (letter, number, underscore)
it'll remove all all the commonwords, AND all the words who've a hyphene.
如果我们有更多的符号需要转义,上面的方法将会起作用。
The above will work if we have more symbols to be escaped.