我有以下
$search_keywords = preg_replace('/\s{1,}(and\s*)*/', ' ', $search_keywords);
从$ search_keywords
中删除单词“and”和任何多余的空格但是当我尝试添加其他单词以便删除时
$search_keywords = preg_replace('/\s{1,}(and|with\s*)*/', ' ', $search_keywords);
带有和的任何字符串它将删除单词但不删除额外的空格,但它会删除单词“with”和字符串中找到的空格?
我也试过以下
$search_keywords = preg_replace('/\s{1,}(and\s*)(with\s*)*/', ' ', $search_keywords);
但这只适用于“和”这个词,但如果存在,则不会删除“with”这个词。
所以我要做的就是从我的varible中删除所有单词“and”和“with”的实例,并删除任何可能留下的空格。
此外,我想删除自己出现的字符串中的所有单个字符,即: “a”,“i”,“£”,“?”等“任何”单独出现的字符(由空格包围)
所以我要说我的字符串是: “你想要牛排和薯条配芦笋酱吗?”
我希望能够返回以下内容: “想要牛排片芦笋酱”
因此,它删除了与,和以及单个字符 u , a 和的吗 希望能有所作为吗?感谢任何帮助 感谢
答案 0 :(得分:1)
您可以使用以下方式更正正则表达式:
$search_keywords = preg_replace('/\s+(\S(\s|$)|((and|with)\s*(\S\s+)?)+)/i', ' ', $search_keywords);
您的正则表达式(and|with\s*)
将在with
之后允许0或更多空格。
答案 1 :(得分:0)
试试这个:
$search_keywords = preg_replace(array('/\s{1,}(and\s*)*/','/\s{1,}(with\s*)*/'), ' ', $search_keywords);