草庐IT

preg-match

全部标签

php - 按空格和冒号拆分字符串,但如果在引号内则不拆分

有这样一个字符串:$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]=>

php - preg_replace 即使在第一次替换之后也匹配字符串中的所有匹配项

这个输出:$san_field='sometextPROSsometextsometext1234CALEND2007RIT';$pattern='/(\s|^|-|--)(?:CALEND|2007|CALEND2007RIT)(--|-|\s|$)/i';echopreg_replace($pattern,'',$san_field)>>sometextPROSsometextsometext12342007RIT我想替换CALEND2007RIT而不是CALEND,这是在$san_field上找到的第一个匹配项。我知道我可以这样做:$san_field='sometextPROS

php - 为什么当我使用 simplexml_load_file() 时 preg_match() 结果在 PHP 中显示为 0?

我的php有一些问题,这是我的代码test.xml类似:Test655Tsungphp代码:asXML());$pattern="/结果显示为“0”,表示未找到,所以我更改$pattern值$pattern="document";结果显示“1”(表示找到)我调试了很多时间...也许编码UTF-8,ASCIIprobram或"/错了吗?我的目的是想解析这个字符串然后得到'..'有人可以告诉我我的错误在哪里吗??谢谢:)) 最佳答案 您正在使用解析器,只需解析它,不需要正则表达式。$xml='Test655Tsung';$xml=new

PHP preg_match 不适用于换行

这个问题在这里已经有了答案: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不会工作。有谁知道为什么该功能无法正

php - 对所有特殊字符使用 preg_split

我想在每次找到特殊字符时拆分一个字符串。我这样做了:preg_split("[\\W]",$str);但这仍然允许下划线(也许更多?)是否可以只说允许a-zA-Z和数字并拆分任何不是其中之一的东西? 最佳答案 您刚刚回答了您的问题:preg_split('~[^a-z0-9]~i',$str);参见thisregexdemo[^a-z0-9]negated字符类匹配除a-z(和A-Z由于i修饰符)而不是数字(用0-9定义)。另一种方法是在否定字符类中使用POSIX[:alnum:]字符类:'~[^[:alnum:]]~'参见rege

php - 为什么PhpStorm会报 "Argument type does not match"错误?

我正在使用PhpStorm10.0.2开发一个PHP7项目。每当我为函数参数声明PHPDoc@param时,该参数具有标量类型的类型提示(string、int、...)我收到这个警告:Argumenttypedoesnotmatch这是PhpStorm提示的一些示例代码:classHostConfig{/***@varstring*/private$hostname;/***@varstring*/private$domainname;/***CreatesanewinstanceofhteHostConfigmodel.**@paramstring$hostnameAhostname

php - 正则表达式 preg_match 未按预期工作

所以我从数据库中获取链接,这些链接看起来像这样:www.website.com/games/randomcode1/RANDOM-URL-TITLE-NEEDED.htmlwww.website.com/blabla/randomcode2/RANDOM-URL-TITLE-NEEDED2.htmwww.website.com/whatever/randomcode2/RANDOM-URL-TITLE-NEEDED3.html在我的foreach循环中,Urls表示为$row['links'];我想做的是只采用RANDOM-URL-TITLE-NEED。这意味着我需要url中从最后一个

php - preg_replace href anchor 与 anchor 文本

如何用每个anchor文本替换所有anchor。我的代码是$body='Themanwasdancinglikealittleboywhileallkidswerewatching...';我希望结果是:Themanwasdancinglikealittleboywhileallkidswerewatching...我用过:$body=preg_replace('#.*?#i','$1',$body);结果是:Themanwaswhileallkidswerewatching... 最佳答案 试试这个$body='Themanwas

php - 如何在 PHP 中使用正则表达式查找完全匹配项?

尝试用PHP中的正则表达式模式匹配我的URL时遇到一些问题。我的正则表达式:/article/([0-9A-Za-z]++)/post/([0-9A-Za-z-_]++)publicfunctionmatches(Route$route){$uri=filter_var(strip_tags($_SERVER['REQUEST_URI']),FILTER_SANITIZE_URL);if(preg_match('#'."/article/([0-9A-Za-z]++)/post/([0-9A-Za-z-_]++)".'#i',$uri,$this->matches)){returntr

php - 正则表达式用于匹配除空白以外的任何字符

我正在编写一个php类来从csv文件中提取数据。所以我需要正则表达式方面的帮助。数据样本DataDataDatatest1DatatestData867$33@!.//()7FieldsomthingField正则表达式/(?:Data|Field)(.+)/这不应该匹配第1、2和7行,因为它在数据和字段之后只有空格和制表符(空白)这是我的正则表达式测试器链接https://regex101.com/r/xpG25l/1/ 最佳答案 你可以做类似的事情(?:Data|Field)\h*\S.*要求\S(非空白字符)在任意数量的\h之