是否可以在不使用括号的情况下对正则表达式的各个部分进行分组?或者,换句话说,不匹配某些括号语句?这就是我的意思——考虑以下正则表达式:$pattern='/^(what|where|who)(are|is)(.+)$/i';preg_match($pattern,$input,$matches);现在。注意前两个子查询——带有竖线的子查询。我如何防止这些出现?如果$input是“whoishe”,我希望“he”是唯一匹配的子查询。我明白,在这个例子中,我可以只获取$matches[3],这会给我正确的结果。然而,由于我的应用程序的性质,我正在动态生成正则表达式,并且结构不会总是像我在这
我如何在php中编写phppreg_match()来挑选出250值。我有一大串html代码,我想从中挑选出250个,但我似乎无法正确使用正则表达式。这是我要匹配的html模式-请注意,我要提取250所在的整数:H$250我已经尝试了几个小时来做这件事,但我无法让它工作,哈哈 最佳答案 preg_match('/H$(\d+)/i',$your_html,$matches);print"Its".$matches[1]."USD";正则表达式实际上取决于您的代码。您究竟在何处搜索? 关
我一直在Internet上寻找一些有用的信息,但我想我找到的太多了。我试图理解正则表达式,但不明白。比方说$data="Abunchoftext[link=123]anotherbunchoftext.",它应该被替换为"123".我已经尝试了很多类似这样的代码:$find="/[link=[([0-9])]/";$replace="$1";echopreg_replace($find,$replace,$data);但输出始终与原始$data相同。我认为我必须了解与我的问题相关的内容,了解基础知识。 最佳答案 去掉()两边多余的[
我正在尝试验证一个域是否确实具有带有preg_match和REGEX的GET参数,我要求它具有我的目的。我的工作是验证没有GET参数的域,如下所示:if(preg_match("/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}$/",'domain.com')){echo'true';}else{echo'false';}我在这个测试中得到了正确的结果。到目前为止一切顺利。我遇到的问题是添加GET参数,在我尝试过的许多REGEX中,仍然没有运气如下:if(preg_match("/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:ValidatingCrontabEntriesw/PHP我到处搜索,我的正则表达式很差,所以我寻求帮助。我正在构建一个基于Web的CRON工具,表单可以并且只会将以下内容传递给处理脚本。'0-99'',''*''-''/'我想在PHP中使用简单的preg_match来验证输入,但似乎无法提出正确的正则表达式。有人可以帮忙吗?此外,我将验证cron中的每个项目,即NOT*****而是分钟值,然后是小时值等。这允许发回更具体的错误。传递值的例子是*0,10*/51,3,51-5这里只是匹配数字和*的糟糕尝试/[
我希望你能帮我创建一个正则表达式,从url中提取图像名称。几天来我一直在尝试创建正则表达式,但我无法让它工作。案例:我有一个用phpThumb创建的图像url,如下所示:\bla\thumb\phpThumb.php?src=/bla/images/thisistheimage.jpg&fltr[]=wmt|40|B|FFFFFF|georgia.ttf|35&hash=b7412f04f09cd6b488435231651d61453/p>不,我需要提取以下内容:thisistheimage.jpg一些事实:图片名称前总有一个“/”;图像名称后面始终跟有一个amp(&);图片扩展名也
我有这个字符串/内容:@Salome、@JessiH和@O'Ren在@Lean的演出用“@Ziggy”鼠标码。好吧,我正在尝试让所有名称都集中在上面。我已经使用@符号创建了一个散列,以便在我的网站中使用。如果您注意到,名称之间有空格,如@JessiH和前后字符,如@Ziggy。因此,如果您建议我以另一种方式管理哈希以使其正常工作,我不会这样做。我在想,对于有空格的用户,可以用@"JessiH"这样的引号来写散列。你怎么看?其他例子:@Lean's=>@"Lean"'s@JessiH=>@"JessiH""@JessiH"=>(sorry,Idon'tknowhowtoparseit)@
我有一个包含所有路由/url及其路径的数组,Example:$route=array('/'=>'files/index.php','pages'=>'files/pages.php','pages/add'=>'files/page-add.php','posts/*'=>'files/posts.php',)使用array_key_exists()我检查数组中是否存在路由,如果存在,则加载其路径,如果找到直接匹配,它就会工作。每当对posts/anything,posts/view/10发出请求时,我希望它与posts/*路径匹配,我不能使用array_key_exists来做到这
这个问题在这里已经有了答案:HowdoyouparseandprocessHTML/XMLinPHP?(31个答案)关闭7年前。我正在尝试修复以下代码。代码:$pageData=file_get_contents('111234-2.html');if(preg_match_all('/我希望它从中获取的一些示例HTML:Welcome1m10s 我得到的输出:Array([0]=>doShowCHys=1;ShowWindowN(0,)我希望的输出:Array([0]=>doShowCHys=1;ShowWindowN(0,'http://www.example.com/h
这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。我需要使用preg_match来获取符合特定条件的文件。例如,我想找到一个名为“123-stack-overflow.txt”的文件。123-之后和.txt之前可以有任何字符。如何修改它才能正常工作?preg_match("/^$ID-(.+).txt/",$name,$file);