草庐IT

PHP 从用括号分隔的字符串中的键名创建多维关联数组

我有一个字符串,括号中有可变数量的键名,例如:$str='[key][subkey][otherkey]';我需要创建一个多维数组,该数组在字符串中表示相同的键($value在这里只是一个不重要的字符串值):$arr=['key'=>['subkey'=>['otherkey'=>$value]]];或者如果您更喜欢这种其他表示法:$arr['key']['subkey']['otherkey']=$value;理想情况下,我想像处理字符串一样附加数组键,但据我所知这是不可能的。我不认为array_push()在这里可以提供帮助。起初我以为我可以使用正则表达式从我的字符串中获取方括号中

php - 如何从由 ","分隔并后跟 - 的字符串形成两个数组?

$str="a,b,c,d-e,f,g,h"我正在尝试从$str中提取在一个数组中以“,”分隔且在“-”之前的字符串,以及在数组中以“,”分隔且在“-”之后的字符串第二个数组。所以$arr1=array(a,b,c,d);和$arr2=array(e,f,g,h);。我只是以$str为例,通常我希望它适用于相同形式的任何字符串,即$str=s1,s2,s3,s4,s5,....-r1,r2,t3....注意:如果$str没有“-”,则$arr2消失,而$arr1包含分隔的元素数组通过在$str中的','。这是我试过的preg_match_all('~(^|.*,)(.*)(,.*|\-

php - 如何在标记 <code> </code> 中将正则表达式字符 < 和 > 替换为 < 和 >?

我有一个像下面这样的字符串:abc在tag我要替换所有字符和>与<和>.我该怎么办?示例:<div>.如果您有任何想法,请告诉我。谢谢大家。 最佳答案 尝试以下解决方案:$textToScan='abc';//theregexpattern(caseinsensitive&multiline$search="~(.*?)~is";//firstlookforallCODEtagsandtheircontentpreg_match_all($search,$textToScan,$matches);//prin

PHP 正则表达式匹配空格

我无法匹配以下正则表达式中content="Wordpress之后的空格$metatag='';$metaregex='/.*?)"/';preg_match($metaregex,$metatag,$matches);print_r($matches); 最佳答案 这是一个打字错误。而不是:$metaregex='/.*?)"/';应该是:$metaregex='/.*?)"/';注意Wordpress与WordPress。或者您可以使用i修饰符忽略大小写:$metaregex='/.*?)"/i';i修饰符:不敏感。不区分大小写

php - 删除换行符之后或之前的三个点

我使用此函数删除换行符前后的三个点:privatefunctiontrimThreeDots(string$text):string{$threeDotsAtTheBeginning='((^|[\n]{1})[\\.]{3})';$threeDotsAtTheEnd='([\\.]{3}[\n]{1})';$pattern='/'.$threeDotsAtTheBeginning.'|'.$threeDotsAtTheEnd.'/';returnpreg_replace_callback($pattern,function($str){returnstr_replace("...",

php - 正则表达式:显示所有电话号码

我想查看字符串中的所有电话号码。现在它在数组“匹配”中只有一个数字我怎样才能得到我数组中的所有数字?$str="djvdsfhis0647382938rdfrgfdgtel:0647382938rfgdfgfd0647382938fdgdfrggfdtel:06-47382938cxgvfdgsfdc";$arr='~\d{2}-\d{8}|\d{10}~';$success=preg_match($arr,$str,$match);if($success){echo"Match:".$match[0]."";print_r($match);}我得到这个作为输出:djvdsfhisff

php - 在 PHP 中使用正则表达式替换空格

我对正则表达式还很陌生。我需要替换一段多行文本中的空格。替换规则如下:将行首的所有空格替换为不间断空格( )。用相同数量的不间断空格替换任何重复空格的实例(多个空格在一起)。不在行首的单个空格保持不变。我使用了RegexCoach构建匹配模式:/(){2,}|^()/假设我有这个输入文本:asdasdasdasdasdas1asda234454554345453453453434345使用PHP正则表达式替换函数(如preg_replace()),我想得到这个输出:asdasdasdasd&nbsp;&nbsp;asdas1&nbsp;asda2344545&a

php - 正则表达式匹配任何 UTF 字符,不包括标点符号

我正在PHP中准备一个函数来自动转换字符串以用作URL(*.html)中的文件名。虽然应该使用ASCII以确保安全,但出于SEO的需要,我需要允许文件名使用任何语言,但我不希望它包含破折号(-)和下划线(_)、字符以外的标点符号像*%$#@"'不应该被允许。空格应转换为破折号。我认为使用Regex将是最简单的方法,但我不确定如何处理UTF8字符串。我的ASCII函数如下所示:functionconvertToPath($string){$string=strtolower(trim($string));$string=preg_replace('/[^a-z0-9-]/','-',$s

php - 模糊文本搜索 : Regex Wildcard Search Generator?

我想知道是否有某种方法可以在PHP中进行模糊字符串匹配。在长字符串中寻找单词,即使拼写错误也能找到潜在的匹配项;如果由于OCR错误而偏离一个字符,它会找到它的东西。我在想一个正则表达式生成器也许能够做到这一点。因此,如果输入“crazy”,它将生成此正则表达式:.*((crazy)|(.+razy)|(c.+azy)|cr.+zy)|(cra.+y)|(craz.+)).*然后它将返回该词或该词的变体的所有匹配项。如何构建生成器:我可能会将搜索字符串/单词拆分为一个字符数组,并构建正则表达式,执行foreach新创建的数组,用“.+”替换键值(字符串中字母的位置)。这是进行模糊文本搜索

php - 使用 php 和 regex 获取标签和数据并存储为关联数组

我如何使用正则表达式在页面中找到这个表(需要通过名称找到它):Name:StuffEmail:Stuff2Address:Stuff3Field1:MoreStuffField2:MoreStuff2Field3:MoreStuff3然后获取“labels”和“datainfo”并将它们存储在关联数组中,例如:$table_name[name]//Stuff$table_name[email]//Stuff2$table_name[address]//Stuff3$table_name2[field1]//MoreStuff$table_name2[field2]//Morestuff