我只是想不通,出于某种原因:$string="#mainparent{position:relative;top:100px;left:100px;width:4994px;}";$elementwidth="88";$re1='(.*?)';#Non-greedymatchonfiller$re2='(mainparent)';#Word1$re3='(.*)';#Non-greedymatchonfiller$re4='(width:)';$re5='(.*)';#Word2$re6='(;)';#AnySingleCharacter1$pattern="/".$re1.$re2.
我正在尝试用PHP创建一个url路由器,它的工作原理与django类似。问题是,我不太了解php正则表达式。我希望能够像这样匹配url:/post/5//article/slug-goes-here/我有一组正则表达式:$urls=array("(^[/]$)"=>"home.index","/post/(?P\d+)/"=>"home.post",);数组中的第一个正则表达式与位于/的主页匹配,但我无法让第二个正则表达式工作。这是我用来匹配它们的代码:foreach($urlsas$regex=>$mapper){if(preg_match($regex,$uri,$matches)
我无法理解正则表达式,感谢任何帮助!我有很多字符串数据,可能包含也可能不包含字符串“1/10”或“2/10”或“2/18”等。基本上,分子和分母都可以变化。让事情变得更复杂的是,一些数据输入运算符(operator)可能在分子和分母之间的任何地方放置了一个空格!!所以我的输入可能是:“x/y”或“x/y”或“x/y”或“x/y”或“x/y”......可能还有更多组合:(在任何这些情况下,我希望确定x和y是否为数字,以及它们之间是否有“/”斜线。对正则表达式感到绝望,请帮忙我正在用php编写代码,我想需要使用preg_match。感谢阅读。 最佳答案
我想把循环分成两部分,但我想不通!我想先从数组中循环三项,然后像这样显示剩余的项,01Home02Portfolio03Blog{mywebsitelogo}04About05Contact06Feed这是我卡住的代码,0有什么想法吗?谢谢。 最佳答案 也许array_slice是你在找什么?foreach(array_slice($items,0,3)as$item){//printitem}//displaylogoforeach(array_slice($items,2,3)as$item){//printitem}
这是无效的代码:Hyperlink';}?>我想要的是,如果链接前后有空格,它就不应该显示链接。所以现在它应该什么都不显示。但它仍然显示链接。 最佳答案 这样也可以匹配ID12,因为3不是空格,http:/的/也不是空格。你可以试试:preg_match_all('/^\S*\/videosite\.com\/(\w+)\S*$/i',$matchWith,$matches); 关于php-正则表达式(preg_match),我们在StackOverflow上找到一个类似的问题:
我有这个bbcode:[url=http://www.youtube.com/watch?v=h1bIEK1h150]IfIofferyoumysoul[/url]例如。我怎样才能把它变成这样:IfIofferyoumysoul 最佳答案 你需要一个正则表达式。考虑到bbcode可以有文本URL或只有URL,您将需要两个语句:$message=preg_replace('@\[url=([^]]*)\]([^[]*)\[/url\]@','$2',$message);$message=preg_replace('@\[url\]([
假设输入字符串+123-321+123345,使用PHP的正则表达式函数我想删除所有非数字([^\d])字符,除了开头的+字符。+可能存在也可能不存在,因此给定字符串123-321+123345结果应该相同(123321123345)。目前的解决方法是检查+,然后运行preg_replace('/[^\d]+/','',$string),但我确信必须有一个纯正则表达式的解决方案来解决这个问题。谢谢! 最佳答案 试试这个/(?\D与[^\d]相同(?是一个负向后视,确保在非数字之前没有字符串的开头。这个表达式将匹配所有不是字符串开
我正在尝试从这样的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"而不是返回具有多个值的数组。只修改模式是否可以做到? 最佳答案 它将始终返回一个数组,但您可以更改模式,以便它只匹配您想
我正在执行正则表达式匹配以查找文本中某些特定单词集的首次出现。因为我不想在它们是其他单词的子字符串时生成误报,所以我想使用模式。例如,我想找到整个单词“DOM”,而不是“RANDOMIZER”中的子字符串DOM,比方说。因此,我将模式用作"\bDOM\b"来考虑所有出现的DOM,两侧都有单词边界。但是DOM和其他此类模式字符串来自数组$tags。将每个标签从$tags读入$tag,比较实际上是:preg_match("/\b$tag\b/",...)但如果$tag=".NET",这会遇到麻烦。然后"\b$tag\b"将开始匹配CNET、INET等字符串,将.解释为通配符。那么,我们如何
我正在尝试返回列表的计数。该列表如下所示:1234我只是不知道如何计算li标签的数量。我不在乎内容,只在乎数量。这是我的:preg_match_all('!.*?.*?.*?!',$content,$matches);丑陋的我知道,当我count($matches[0]);时我只收到一个匹配项谁能指出我做错了什么和/或为什么?谢谢编辑:我知道用正则表达式解析HTML是bad,但我现在在这件事上别无选择。 最佳答案 .*?.*?.*?^^^我要指出的部分是消耗所有字符直到(甚至是部分)。消耗它们后,没有更多的匹配,它到此结束,只给出一