草庐IT

php - 在 PHP 中将数字序列转换为数组

有点PHP和Regex菜鸟,我从Web服务收到以下信息:test:002005@1111@333333@;10205@2000@666666@;002005@1111@55555@;上面一行是一个由3个数字组成的序列,重复3次。我想获得每个序列的第3个数字,我相信最好的类(class)(除了3000次爆炸)是preg_match_all,但我很难全神贯注于RegEx。最终结果应该是这样的:Array([0]=>333333[1]=>666666[2]=>55555)在此先感谢您的帮助。 最佳答案 if(preg_match_all(

PHP 正则表达式无法正常工作?

我正在尝试制作一个正则表达式来匹配特定条件,但我无法让它按照我想要的方式工作。我当前的正则表达式是'/S(?:[0-9]){2}E(?:[0-9]){2}/i'我希望它满足以下条件一个S至少一位0-9可选数字,可以是0-9一个E至少一位0-9可选数字,可以是0-9如果可能的话,我还希望它能匹配双数而不是单数,我按照互联网上的教程编写了正则表达式,但我觉得我遗漏了一些东西。谢谢... 最佳答案 试试这个:输出:TestingS11E22...Match!TestingS1E2...Match!TestingS11E2...Match!

PHP preg_split,表达式 i 大括号并保存定界符

我已经为此苦苦挣扎了半天,但我似乎找不到答案。请帮助菜鸟。:)我有一个字符串,它由几个放在大括号中的句子组成。它看起来像这样:{super骗人的额外文字。}{很棒的另一个文字!}{我们又来了...}现在我想拆分它。我发现我可以搜索.}{等模式。所以我这样做了:$key=preg_split('/[!?.]{1,3}\}\{/',$key);但是这样我失去了定界符,我失去了所有那些。!?等在句末。我试过这样做:$key=preg_split('/([!?.]{1,3}\}\{)/',$key,-1,PREG_SPLIT_DELIM_CAPTURE);$sentences=array();

php - 如何获取大括号内的嵌套值

如何使用php进入嵌套大括号内?例子:{{text1{{text2text3{{text4}}text5}}}}应该输出1-text1{{text2text3{{text4}}text5}}2-text2text3{{text4}}text53-text4 最佳答案 这需要跟踪括号的数量,不能使用正则表达式来完成。您必须为此创建自己的解析器逻辑。Regexisnotaparser,对不起。HereisanothersimilarquestionwiththesameresponseasmineAndhereisaSOaboutbui

php - 将 abcd 转换为 (a(b(c(d)))) 的正则表达式

我正在使用PHP的preg_replace,并尝试转换字符串abcd进入(a(b(c(d))))这是我得到的最好的:preg_replace('/.(?=(.*$))/','$0($1)','abcd');//a(bcd)b(cd)c(d)d()甚至可以使用正则表达式吗?编辑我刚刚在PCRE规范中发现了这一点:Replacementsarenotsubjecttore-matching,所以我原来的方法行不通。我想保留所有正则表达式,因为在我的实际用例中有一些更复杂的匹配逻辑。 最佳答案 怎么样:preg_replace('/./s

php - 匹配模式,但不返回所有模式

我对正则表达式很陌生。假设我有这样一个字符串:UPDATEtable_nameSETcolumn=:columnWHEREcolumnIN(:column_32,:column_34,:column_347)然后假设我有一个数组:$arr=array('column'=>'Test','column_32'=>'Tester','column_34'=>'Fauxdata','column_347'=>'Columndata');我想要做的是用数组中相应的值替换占位符(:column、:column_32等)。问题是,str_replace不会削减它,因为用“Test”替换:colum

PHP Regex匹配最后一次出现的字符串

我的字符串是$text1='A373R12345'我想找到此字符串最后一次出现的非数字编号。所以我使用这个正则表达式^(.*)[^0-9]([^-]*)然后我得到了这个结果:1.A3732.12345但我的预期结果是:1.A373R(它有'R')2.12345另一个例子是$text1='A373R+12345'然后我得到了这个结果:1.A373R2.12345但我的预期结果是:1.A373R+(它有'+')2.12345我要包含最后一个无数字的数字!!请帮忙!!谢谢!! 最佳答案 $text1='A373R12345';preg_m

php - preg_replace 双重替换

我从正则表达式中得到了一些意想不到的结果,这意味着要替换命名空间上的类名。替换似乎发生了两次,因此被替换的类名是重复的(请参见下面的示例)。我实际上已经通过更改正则表达式以匹配1个或多个(+)而不是0个或多个(*)来解决问题,这实际上更准确为了我想要的。但是,我对为什么一开始会遇到问题感到有点困惑。这是问题的一个例子:$classns='components\groups\GroupsController';$newclass='GroupsAccess';$classns=preg_replace('/[^\\\\]*$/',$newclass,$classns);echo$clas

php - 在不指定单词本身的情况下在PHP中查找重复的单词

我一直在考虑我想做的项目,我不是高级用户,我只是在学习。不知道这是否可能:假设我们有100个html文档,其中包含许多表格和文本。第一个问题是:是否可以分析所有这些文本并找到重复的单词并统计它?是的,可以用一些函数来做,但问题是:如果我们不知道要找到的单词怎么办?也就是说,我们必须告诉代码一个词的含义。例如,假设一个词是七个字符的并集,我们的想法是找到其他类似的模式并提及它。执行此操作的最佳方法是什么?非常感谢您。例子:搜索:下一个短语的五个字符模式:文本一:"Ittakesanoceannottobreak"文字二:"Anoceanisabodyofsalinewater"结果Tak

php - 在换行符中使用 preg_match_all

我正在尝试使用preg_match_all从网站中获取特定部分的出现次数,我之前已经成功地做到了这一点,但现在的不同之处在于这些部分跨越换行符......因为我'我明白了,我应该可以用一些修饰符来做到这一点......所以相关网站上的部分结构是这样的:所以我正在尝试使用LICRabatGuideAftale获取所有事件并清除...我试过:preg_match_all("/LICRabatGuideAftale(.*)clear/s",$link_section,$link_array);但它似乎并没有将网站分成几个部分,而是只给了我数组中的1个条目... 最