我编写了PHP代码来使用正则表达式检查字符串。每个字符串都应以空格开头,总长度应恰好为10。$str='123456789';if(preg_match('/^([0-9]){10}+$/',$str)){echo'true';}echo'false';当我更改$str变量时,我期望得到以下结果。但是使用上面的正则表达式,我只得到了第一个。$str='1234567890';//true$str='1234567890';//false 最佳答案 如果您真的是指空白,那么请使用\s作为您的空白,因为它也会抓取制表符。另外,看起来你只
我有这个preg_match_all来获取主题标签:preg_match_all('/(^|[^a-z0-9_])#([a-z0-9_]+)/ui',$text,$matchedHashtags);它工作得很好,但如果发现一些强调就会停止:#hash//works#hash_hash//works#hash_não//getjust$hash_n我需要改变什么? 最佳答案 您可以使用Unicodecategory信件。\p{L}匹配来自所有Unicodescripts的字母(≅语言)。正则表达式:/(?regex101Demo另一种
有这样一个字符串:$str="dateto:'2015-10-0715:05'xxxxdatefrom:'2015-10-0915:05'yyyyasdf"期望的结果是:[0]=>Array([0]=>dateto:'2015-10-0715:05'[1]=>xxxx[2]=>datefrom:'2015-10-0915:05'[3]=>yyyy[4]=>asdf)我得到的:preg_match_all("/\'(?:[^()]|(?R))+\'|'[^']*'|[^(),\s]+/",$str,$m);是:[0]=>Array([0]=>dateto:'2015-10-07[1]=>
这个输出:$san_field='sometextPROSsometextsometext1234CALEND2007RIT';$pattern='/(\s|^|-|--)(?:CALEND|2007|CALEND2007RIT)(--|-|\s|$)/i';echopreg_replace($pattern,'',$san_field)>>sometextPROSsometextsometext12342007RIT我想替换CALEND2007RIT而不是CALEND,这是在$san_field上找到的第一个匹配项。我知道我可以这样做:$san_field='sometextPROS
找到以下很好的正则表达式来匹配所有可打印的ASCII字符:[-~]我的代码是这样的:$string="MyASCIIstringis(not)veryfunny.";filter_var($string,FILTER_VALIDATE_REGEXP,array("options"=>array("regexp"=>"/^[-~]*$/")));这几乎就是我所需要的,但是我想排除冒号。我试过[-~\:]和[-~^:]都不起作用。什么是正确的正则表达式以及如何正确排除单个字符? 最佳答案 看起来您正在寻找这样的正则表达式:(?=[-~]
我有以下示例字符串Lot99.Isit1+3or5or6.53我想要下面的结果["Lot99",".","Is","it","1","+","3","or","5","or","6.53"]因此,结果消除空格,分隔单词,但如果单词和数字之间没有空格,则将它们放在一起,如果不在单词的开头或结尾,则将数字分隔开。分隔符号,如+-.,!@#$%^&*();\/|但如果2个数字之间的小数点不存在,例如2.2应保持为2.2到目前为止我有这个正则表达式/s+[a-zA-Z]+|\b(?=\W)/我知道的不多,但我访问了很多网站来学习RegEx,但我仍在努力了解这门语言。如果您的回答可以,请包括评论
这个问题在这里已经有了答案:PHPRegex:Howtomatch\rand\nwithoutusing[\r\n]?(7个答案)关闭去年。我有这个漂亮的preg_match正则表达式:if(preg_match("%^[A-Za-z0-9ążśźęćńółĄŻŚŹĘĆŃÓŁ\.\,\-\?\!\(\)\"\\/\t\/\n]{2,50}$%",stripslashes(trim($_POST['x']))){...}这应该允许可以在帖子中使用的所有字符以及帖子的最终文本内容。问题是,尽管\n它的功能仍然不适用于我帖子中的新行,因此语法为foobar不会工作。有谁知道为什么该功能无法正
如果给定字符串在我的类(class)之外,我想使用正则表达式从给定字符串中删除anchor标记。输入:HiHelloWorld.Thisistestingcontent.somemorecontent.OnemoreLink.输出:HiHello.Thisistestingcontent.somemorecontent.Onemore.提前致谢。 最佳答案 你可以(顺便说一句,应该)使用DOM方式(仅使用正则表达式将很难,如果不是不可能的话)。这里的方法是寻找没有祖先的超链接div.myclass并从DOM中删除这些:HiHello
我需要一个匹配特定捕获组的正则表达式,该捕获组位于多行注释/*...*/中。特别是我需要在多行注释中找到PHP变量定义例如:/*othercode$var=value1*/$var=value2;/*othercode$var=value3;othercode*/必须只匹配注释中出现的两次“$var=”,而不匹配注释外的一次。对于上面的例子,我写了一个正则表达式,它使用不受限制的后视,就像这样(?但是这个正则表达式会失败,以防它在注释开始标记“/*”和$var之间同时找到字符*和/,即使它们彼此是APART,这不是所需的行为:例如在这种情况下它失败了:$var=....;/*other
您好,我使用正则表达式尝试了以下代码$str=preg_replace("/[^a-z0-9_]/i",'','New_text%*');//output=>New_text(_除了char)一切都很完美,但是当我输入的字符串类似于其他语言(例如印地语)时,印地语中的字符会也删除。同上例$str=preg_replace("/[^a-z0-9_]/i",'','कपिलशर्मा%*_');//output=>_howtoget:कपिलशर्मा_正则表达式或PHP中我们可以做的任何其他方式是否有任何错误? 最佳答案 你需要使用'