在laravel中,我有一个$string和一个$blacklistArray$string='Cassandraisacleanwordsoitshouldpassthecheck';$blacklistArray=['ass','ballsack'];$contains=str_contains($string,$blacklistArray);//true,containsbadword$contains的结果为真,因此这将被标记为包含黑名单词(这是不正确的)。这是因为下面的名称部分包含assC屁股安德拉但是,这是部分匹配,Cassandra不是坏词,因此不应标记它。只有当字符串
我用http://gskinner.com/RegExr/生成了以下正则表达式代码它在哪里工作,但是当我用PHP执行它时,它无法在替换字符串中使用匹配项。preg_replace('/(?)\b\w*\b|^\w*\b/','$&','anexample');输出:$&example预期:anexample我知道显然$&没有做正确的事情,但我怎样才能让它工作? 最佳答案 改用这个试试preg_replace('/(?)\b\w*\b|^\w*\b/','$0',$string);$0表示它将成为您的正则表达式中第一个匹配的东西,$1
我正在尝试在php中创建一个单词过滤器,我看到了以前的Stackoverlow帖子,其中提到了以下内容以检查字符串是否包含某些单词。我想要做的是对其进行调整,使其一次性检查各种不同的单词,而无需一遍又一遍地重复代码。$a='Howareyou?';if(strpos($a,'are')!==false){echo'true';}如果我将代码修改成下面的代码,它会工作吗?......$a='Howareyou?';if(strpos($a,'are'OR$a,'you'OR$a,'How')!==false){echo'true';}添加多个单词以检查“”的正确方法是什么?
我有字符串:FirstWordword2word3wrongWordword4lastWord想要选择以FirstWord开头,以lastWord结尾且不包含wrongWord的字符串。对于第一个也是最后一个,我有:/firstword(.*?)lastword/i但排除wrongword无效。尝试过:/firstword(^wrongWord*?)lastword/i/firstword^((?!wrongWord).)*lastword/i还有更多类似的东西,但没有任何效果。 最佳答案 简单的以下内容有什么问题?/^firstw
我想用一个特定的词替换多个同义词。结果:本田是一辆汽车。雷克萨斯是一辆汽车。日产是一辆汽车。Scion是一辆汽车。谁能告诉我用“汽车”一词替换“车辆、卡车、轿跑车、轿车”的简洁方法,而不是我单独替换所有4个。谢谢。 最佳答案 $a=array('truck','vehicle','sedan','coupe');$str='Hondaisatruck.Toyotaisavehicle.Nissanisasedan.Scionisacoupe.';echostr_replace($a,'car',str_replace('Toyota
我正在构建一个基本函数,它根据数组中的数量构建MysqlWHERE子句。$array=array('id'=>'3','name'=>'roger');$sql="SELECT*FROMtableWHERE";foreach($arrayas$k=>$v){$sql.=$k.'='.$v.'AND';}输出SELECT*FROMtableWHEREid=3ANDname=rogerAND但是显然我不想要最后一个AND,我该如何将它从字符串中删除?谢谢 最佳答案 你可以做$sql=substr($sql,0,-5);但也许更优雅的解决
我想删除冠词中的所有介词(in、at、on...)、定冠词(a、an、the...)和be动词(is、are、was...)。有没有php可以做到这一点的捷径?$article="thecupisonthetable";//Iwantgetanecholike"cuptable" 最佳答案 关键是确保你只替换整个单词(例如,不是“there”中的“the”),为此你可以在PCRE中使用\b:$words=array('in','at','on','etc..');$pattern='/\b(?:'.join('|',$words).
我有一个词你好你好吗:chinu我是:good我想得到包含:的词,比如:chinu和:good我的代码:上面的代码我得到了Array([0]=>:[1]=>)但没有得到确切的文本。请帮助我。谢谢下巴 最佳答案 要获得所有匹配项,您需要使用preg_match_all().就您的正则表达式而言,您的否定类是倒退的;匹配以下任意字符::、^“零次或多次”,并且不会匹配您的预期。您在评论中提到“记录”被打印两次,这是因为您打印了$matches数组本身,而不是打印仅显示的组index比赛结果。preg_match_all('/:\S+/'
我有一个字符串:$string="R124Thisismymessage";有时,字符串可能会发生变化,例如:$string="R1345255Thisisanothermessage";使用PHP,删除前两个“单词”(例如,开头的“R”和随后的数字)的最佳方法是什么?感谢您的帮助! 最佳答案 $string=explode('',$string,3);$string=$string[2];必须比正则表达式快得多。 关于php-从字符串中删除前两个单词,我们在StackOverflow上
如何获取字符串中最长的单词?例如。$string="WheredidthebigElephantgo?";返回“大象” 最佳答案 遍历字符串中的单词,跟踪到目前为止最长的单词:$longestWordLength){$longestWordLength=strlen($word);$longestWord=$word;}}echo$longestWord;//Outputs:"Elephant"?>可以提高一点效率,但您明白了。 关于php-字符串中最长的单词,我们在StackOverf