我正在尝试从这样的uris列表中解析一个整数:uri.com/upload/123456789_abc.ext我正在使用这种模式:preg_match("#uri\.com\/upload\/(.*?)_#is",$uri,$match);哪个有效并返回:Array([0]=>uri.com/upload/123456789_[1]=>123456789)但我想知道是否有办法使$match=="123456789"而不是返回具有多个值的数组。只修改模式是否可以做到? 最佳答案 它将始终返回一个数组,但您可以更改模式,以便它只匹配您想
如果用户更改密码,我正在尝试在PHP中进行检查,他们的新密码必须为8个或更多字符,并且至少有1个非字母数字密码。我应该如何检查它以及正则表达式是什么?检查长度是简单的部分strlen>=8。我的问题是正则表达式。即使经过多年的计算机科学学习,我对正则表达式真的一无所知。谢谢 最佳答案 尝试这样的事情来检查他们是否使用了非字母数字字符:if(!preg_match('/[^A-Za-z0-9]+/',$password)||strlen($password)如果$password不包含至少一个不在列表中的字符(字母数字字符)。
我尽力把一个带数字的句子中的所有单词都去掉了,但还是没有成功!我什至尝试了以下正则表达式:$regex='/(\\s+\\w{1,2}(?=\\W+))|(\\s+[a-zA-Z0-9_-]+\\d+)/';$x=preg_replace($regex,"",$x);我正在努力完成以下任务:包含数字和任何特殊字符(例如-和_)的单词的原始文本:ThisisS3F8Gm7j34mh98H40D-3D3990843-432423LSDF34X4itverygood343c3.最终文本需要如下:Thisisverygood. 最佳答案 返
我的一些代码有问题。这是代码$test='123';$i=0;$find[$i]="#(.*)#is";$replace[$i]="5";$i++;$find[$i]="#(.*)#is";$replace[$i]="$1";echohtmlentities(preg_replace($find,$replace,$test));目前这只在结果中显示数字5。但我希望它显示153有谁知道我做错了什么?谢谢 最佳答案 是的,因为.*匹配所有内容(包括标签),所以你匹配的太多了。如果您通过阻止正则表达式匹配尖括号来限制正则表达式不跨标记边
我在这里尝试做的是获取一个通常可能包含代码注释的字符串,并将其替换为其他内容,尤其是将其包装在其他内容中。我很确定preg_replace函数可以在这里工作,但我不知道从哪里开始使用Regex。例如:Helloworld//thisisacommentTesting//nottestingTestagain会变成Helloworld%//thisisacomment%Testing%//nottesting%Testagainpreg_replace('???','%$1%',$matches);是我自己能想到的,非常感谢任何帮助! 最佳答案
我需要使用正则表达式匹配[[[和]]]之间的任何内容。然后我需要将在括号之间找到的所有值放入一个数组中。示例文本:hereissome'testtext[[[media-2largeright]]],[[[image-0largeleft]]]theanothertoken[[[image-1]]从上面的文本我需要匹配前两个:1,[[[media-2largeright]]]2,[[[image-0largeleft]]]但不是最后一个,因为它最后只有两个[。 最佳答案 一个通用的解决方案是这个:\[{3}(?=.*?\]{3}(?
我正在尝试清理我的CSS文档以仅删除那些带有供应商前缀的行:-webkit-......;-o-.....;-ms-......;-khtml-......;-moz-......;如您所见,所有行都具有相同的模式并以分号结尾,只是供应商不同。到目前为止,我尝试了一个一个地搜索,但应该有更好的方法来实现这一点:preg_match("/(-webkit.*;)/",$css,$webkit);$css=str_replace($webkit[1],'',$css);//...etc任何提示将不胜感激。谢谢更新:原因是我将使用http://leaverou.github.com/pref
我在PHP中使用Markdown,并编写了一个正则表达式来自动将文本包装在里面(如果有的话)-带有命名anchor(Text)的标签用于链接。这是PHP:$text='ThisisaTesttoseeifthisworks';$regex='/\(.+)\/';echopreg_replace($regex,'$2',$text);结果是:ThisisaTesttoseeifthisworks这里重要的是,Markdown重量轻且易于存储空间。手动添加命名anchor违背了完全使用Markdown的目的。这种方法可以很好地用于测试目的,但我想知道(这是问题所在)是否有更好的、更语言无关
我是正则表达式的新手。我想问一下这个html标签的正确组合是什么:3:34amCNY我正在使用这个:$html=websitehtmlfromaurl$match=array();$pattern="/(.*?)/ims";preg_match_all($pattern,$html,$match);但它不起作用:|我只想选择那个tr元素的所有内容..最好的问候。 最佳答案 使用DOMDocument你不应该在这样的事情上使用正则表达式;而是创建一个DOMDocument从您的标记中,然后从该特定元素中选择子项。例如,以下将为我们提供
我正在用PHP为基于MVC的站点重新编写路由处理类,并且需要一个正则表达式来检测URL中的分页字符串。分页字符串由三个不同的部分组成;页码检测:/page/[NUMERIC]/每页项目检测:/per_page/[NUMERIC]/顺序检测:/sort/[ALMOST_ANY_CHARACTER]/[ascordesc]/由于之前的开发方式,这三部分可以任意顺序。我需要继续工作的许多现有链接以及用于处理分页的代码(尚无重写计划)-因此不可能更改分页代码以始终生成一致的url。因此,我需要构建一个正则表达式模式来检测分页结构的所有可能组合。我有三种模式来检测每个部分,如下所示:页码检测:(