草庐IT

preg-match-all

全部标签

php - 使用 preg_match_all 匹配模式并排除子字符串

我需要找到位于START和END之间的所有字符串,从匹配的字符串中排除PADDING子字符串。我发现的最好方法是$r="stuffSTARTthisPADDINGisENDstuffstuffSTARTwhatPADDINGIwantPADDINGtoPADDINGfindENDstuff";preg_match_all('/START(.*?)END/',str_replace('PADDING','',$r),$m);print(join($m[1]));>thisiswhatIwanttofind我想用尽可能小的代码来做到这一点:有一个更短的只有preg_match_all没有s

php - Symfony2 和 Doctrine2 : how to get all tags for a post?

在我的项目中,我在两个实体之间建立了多对多关系:Post和Tag。(帖子有一个变量“标签”)。我想允许用户通过他们的名字或他们的标签搜索帖子(例如在tumblr上)假设我的数据库中有这个:NameTagspost1:"Recipewitheggs"cooking,chicken,eggpost2:"RandomTitle"beef,chicken,eggpost3:"CookingFish"fish,cookingpost4:"Riceandchicken"rice,meat因此,如果我在搜索表单中输入“鸡蛋”,我必须只返回post1(因为标签)、post2(因为标签)和post4(因

php - 字符串中的正则表达式匹配部分

我有一个字符串foo-foo-AB1234-foo-AB12345678。字符串可以是任何格式,有没有办法只匹配以下模式letter,letter,digits3-5?我有以下实现:preg_match_all('/[A-Za-z]{2}[0-9]{3,6}/',$string,$matches);不幸的是,这在AB1234和AB12345678上找到了一个匹配项,它有超过6个数字。在这种情况下,我只希望在AB1234上找到匹配项。我试过:preg_match_all('/^[A-Za-z]{2}[0-9]{3,6}$/',$string,$matches);您会注意到^和$标记开始和

php - 使用 preg_replace 的 '&' 字符正则表达式

我正在尝试使用preg_replace解析包含&的URL。$content=preg_replace('#https?://[a-z0-9._/\?=&-]+#i','$0',$content);但我将它用于用户评论,所以我还使用htmlspecialchars()函数来防止XSS。functionformatContributionContent($content){$content=nl2br(htmlspecialchars($content));//Regexpformails$content=preg_replace('#[a-z0-9._-]+@[a-z0-9._&-]{2

php - 使用正则表达式从字符串中提取数字和符号

我有一个包含文本、数字和符号的字符串。我试图从字符串中提取数字和符号,但收效甚微。我没有得到全部的数字和符号,而是得到了其中的一部分。我将在下面解释我的正则表达式,使其更清晰、更容易理解。\d:anynumber[+,-,*,/,0-9]+:1ormoreofany+,-,*,/,ornumber\d:anynumber代码:$string="text1+1-1*1/1=text";$regex="~\d[+,-,*,/,0-9]+\d~siU";preg_match_all($regex,$string,$matches);echo$matches[0][0];预期结果1+1-1*1

php - haxe (php) https 调用 : stream_socket_client() Peer certificate CN did not match expected CN

我正在使用haxe的Http类(编译为php)通过https将request()发送到AWS。这是一个使用haxe-aws库(https://github.com/Blank101/haxe-aws)的最小示例:variamconf=newIAMConfig('newbucket.s3-eu-central-1.amazonaws.com',accessKey,secretKey,'eu-central-1','s3');varsig4=newSig4Http('https://newbucket.s3-eu-central-1.amazonaws.com/',iamconf);sig

PHP - 匹配文本中所有存在的短语 - preg_replace

这个问题在这里已经有了答案:PHP-BBCodeparser-recursive[quote]withregexandpreg_replace(2个答案)关闭7年前。这是我的文字:$msg_text='[quote]TEXT[/quote]';和我的preg_replace:$msg_text=preg_replace('#\[quote\](.*?)\[\/quote\]#is','"$1"'."\r\n",$msg_text);而且效果很好。但是当我的文本看起来像这样时怎么办:$msg_text='[quote]TEXT[quote]TEXT[/quote][/quote]';??

php - php 中的 preg_match

我想使用preg_match()这样给定字符串中就不应该有特殊字符,例如``@#$%^&/'`。例如:编码:输出有效:输出无效(以空格开头的字符串)项目管理:输出有效(两个词之间的空格有效)'Design23':输出有效23Designing:输出无效123:输出无效我尝试了但无法得出有效答案。 最佳答案 像这样的正则表达式有帮助吗?^[a-zA-Z0-9]\w*$意思是:^=这个模式必须从字符串的开头开始[a-zA-Z0-9]=此字符可以是任何字母(a-z和A-Z)或数字(0-9,另见\d)\w=单词字符。这包括字母、数字和空格(

php - 使用 preg_replace 截断字符串的最有效方法?

我正在查看一些代码并开始思考使用preg_replace截断字符串(在本例中为URI)的最有效方法。首先-我意识到首先使用preg_replace对于这个任务来说可能有点矫枉过正,它可能不必要地昂贵,并且最好使用PHP的字符串友好函数来处理它,例如作为substr。我确实知道这一点。也就是说,考虑这两个不同的正则表达式:$uri='/one/cool/uri';//Desiredresult'/one/cool'//Usingaback-reference$parent=preg_replace('#(.*)/.*#',"$1",$uri);//Usingcharacterclassn

PHP preg_replace - 在结果中包含模式/完整主题

我有一个我自己无法解决的问题:替换...locale("Sendx","Send")locale("System","System")应该变成:locale("Sendx","Subsub")locale("System","Newsys")我尝试了一个简单的替换:$mysearchword="System";#changesinaloop$myreplaceword="Newsys";#alsochangesintheloop$oneline=str_replace($mysearchword,$myreplaceword,$oneline);但结果看起来像locale("Sendx