草庐IT

preg-grep

全部标签

php - 使用 PHP preg_replace 搜索并替换字符串中的数字

我有这样的格式:00-0000,我想得到0000-0000。到目前为止我的代码:问题是-0不会被正确添加(我猜preg_replace认为我在谈论参数$100而不是$1)我怎样才能让它工作? 最佳答案 你可以试试下面的方法。echopreg_replace('~(?这会将连字符替换为00。你还是让它变得简单或preg_replace('~-(\d{2})~',"$1-",$string) 关于php-使用PHPpreg_replace搜索并替换字符串中的数字,我们在StackOverfl

php - preg_replace 数字并在结果中使用

我将如何使用preg_replace来替换:Sometextis[[1]]andsomeis[[2]]blabla...进入这个:Sometextis1.____________andsomeis2.____________blabla...我有这个正则表达式可以找到正确的出现,但我不知道如何将替换数字添加到结果中?preg_replace('(\[\[\d\]\])','_______',$subject);这让我得到了这个结果:Sometextis____________andsomeis____________blabla... 最佳答案

php - 获取重音 preg_match_all 语法 PHP

我有这个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另一种

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 - 正则表达式 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 - 使用 preg_replace 替换字符,除非前面有转义字符

我正在尝试执行以下操作,希望周围有reg_ex专家可以提供一些帮助。我需要在我的代码中替换字符[并使其成为{。但是有些情况下[需要保持[而不是改变。所以我认为我需要使用preg_replace("[","{",$string);具有合适的正则表达式的函数,这将导致[前面没有转义字符的字符被使用让我们说。那么我怎样才能替换这个“[”而不是这个“[”呢?提前致谢 最佳答案 你可以做到这一点,它是通过约定调用negativelookbehindassertionsechopreg_replace("/(?基本上,“仅当前面没有\时才将[替