草庐IT

REGEX_EXTRACT_ALL

全部标签

php - preg_match_all 用逗号分隔,值可能包含空格

我目前有一个preg_match_all用于不包含空格的常规字符串,但我现在需要让它适用于每个空格之间的任何内容。我需要abc,hh,heythere,123,hey_there_返回abchh嘿``123hey_there_但是当涉及到空格时,我当前的脚本就会停止。preg_match_all("/([a-zA-Z0-9_-]+)+[,]/",$threadpolloptions,$polloptions);foreach(array_unique($polloptions[1])as$option){$test.=$option.'>';} 最佳答案

PHP REGEX 删除括号和括号内的文字

需要删除其中的括号和文字。现在,它几乎可以正常工作。删除从括号开始的所有文本。我的代码:$lines=preg_replace("/\(([^\d]+)/",'',$lines);例如,文本:Somerandomwords(word1/word2/word3)aaaa代码也删除括号后的所有文本,Somerandomwords但我需要做的是(它应该是什么样子):Somerandomwordsaaaa 最佳答案 /\([^()]*\)/\(-左括号[^()]*-尽可能多的字符,不是括号\)-右括号您可以选择删除末尾的一个空格(/\([^

php - RegEx (.*?) 除了一个字符之外的任何东西

我正在尝试将某些内容与/^(.*?)\/$行之间的模式相匹配。但是,由于(.*?)已经匹配/它也匹配anything//////////但我只希望它匹配anything/。是否有从(.*?)或其他解决方案中排除/的好方法? 最佳答案 使用negatedcharacterclass[^\/]:/^([^\/]*)\/$/参见regexdemo在PHP中,您可以使用其他一些分隔符来避免模式中的过度转义,比如~:$rx='~^([^/]*)/$~';详细信息:^-字符串的开始([^\/]*)-第1组捕获除/以外的0+个字符\/-文字/$-

php - 在 Woocommerce 管理员订单列表中显示自定义状态为 "all"的订单

我使用这段代码创建了一些自定义订单状态register_post_status('wc-arrival-shipment',array('label'=>'Shippedbutnotpaid','public'=>false,'show_in_admin_status_list'=>true,'show_in_admin_all_list'=>true,'exclude_from_search'=>false,'label_count'=>_n_noop('Shippedbutnotpaid(%s)','Shippedbutnotpaid(%s)')));除所有订单list外,一切运行

PHP - extract() 类型

PHP的extract()函数可以采用几种extract_types之一。但是extr_prefix_same和extr_prefix_if_exists有什么区别呢?手册听起来像是,在任何一种情况下,如果变量名已经存在,新变量将被添加前缀。谢谢! 最佳答案 使用EXTR_PREFIX_IF_EXISTS时,如果变量不存在,则也不会创建带前缀的版本。在这个例子中:functiontest(){$a=12345;extract(array('a'=>1,'b'=>2,'c'=>3),EXTR_PREFIX_IF_EXISTS,'my_

php - "do it all"页面结构和注意事项?

我仍未接触PHP(我的第一语言),并且我已经达到了可以编写一个页面来处理各种不同相关请求的能力水平。它们通常具有如下结构:(伪代码)//snip//snip一切都很好,而且速度很快,这很酷。但我仍然在黑暗中摸索着自己的路……并希望专业人士提供一些关于此类页面设计的意见……这是一个好的长期结构吗?(看起来很容易展开……)此设计是否存在特定的安全风险?我应该避免画自己的角落吗?只是好奇future会发生什么,真的...... 最佳答案 这种设计是初学者在前进一点时会去的地方。我以同样的方式让index.php成为一个大的SWITCH语句

regex - 用 php preg_replace 只替换一次字符串

我需要一个replacestringonce函数,我相信preg_match可能是我最好的选择。我正在使用这个,但由于使用的动态性,有时这个函数表现得很奇怪:functionstr_replace_once($remove,$replace,$string){$pos=strpos($string,$remove);if($pos===false){//Nothingfoundreturn$string;}returnsubstr_replace($string,$replace,$pos,strlen($remove));}现在我正在采用这种方法,但遇到了下面列出的错误...。我正在

php - 如何防止使用 Regex 删除斜杠?

我不知道如何更改下面的正则表达式以保留斜杠。我想确保它只包含字母、数字、下划线、破折号和斜线。($query类似于/offer/some-offer-bla-bla-bla)$query=preg_replace('/[^-a-zA-Z0-9_]/','',$query);谢谢 最佳答案 只需在字符类中包含/即可。但是由于您使用/作为正则表达式分隔符,您需要将其转义以及\/:$query=preg_replace('/[^-a-zA-Z0-9_\/]/','',$query);^^你可以通过使用\w代替[a-zA-Z0-9_]来缩短

php - 在 RegEx (PCRE) 中的上一场比赛结束时继续

我试图阻止\Ganchor匹配字符串的开头。我只希望它在最后一个正则表达式匹配结束时匹配。给定以下文本:Pig,Cow,Goatfruit:apple,orange,peach,pearvegetable:Carrot,Lettuce,Cellery这个模式:(fruit:|\G)([\w]+|[\,])我希望它只匹配“fruit:”之后的单词,但我需要它单独捕获每个单词。如果我只是把+放在这个模式的最后,它会匹配“fruit:”之后的所有词,但它只会捕获“pear”,因为+的每次迭代都会踩到最后一个。问题来了。这种模式有效,除了它还匹配“Pig,CowandGoat”,因为\G将匹配

php - 用于处理字母数字输入的 RegEx - PHP

我有这个代码。它打印出我想要的312,3。但是,如果我提供像D12/336这样的输入,那么它就不起作用了。我想让它打印336,D12我该怎么做?以及我当前不处理此字母数字的代码有什么问题?是因为我用了\d吗?编辑:我希望它也能处理这样的输入148/DIG.111那么输出应该是DIG.111,148 最佳答案 是的\d只包含数字。您可以尝试\w而不是字母数字,但另外它还包括_要成为Unicode,您可以努力~[\pL\d.]+/[\pL\d.]+~u\pL是具有“字母”属性的Unicode代码点最后的u开启使用该功能所需的UTF-8模