草庐IT

php - 替换字符串 PHP 中最后一次出现的至少双倍换行符 (\n\n)

我需要替换字符串中至少两次换行(\n\n)的最后一次出现,所以它应该是\n\n或\n\n\n或\n\n\n\n等等(至少2\n)通过“@@”。我认为它应该是preg_replace。我在stackoverflow上的答案中尝试了很多选项,但所有这些选项都有一些未捕获的情况。我试过regex101站点来准备正则表达式,但我在这方面并不擅长,所以我找到了一些看起来像在站点上工作的解决方案(/((\\n){2,})+(?!.*((\\n){2,})+)/i),但是当我在我的代码中尝试它时,我不工作.另一个是([\\n\\n])+(.[^\\n\\n])*$,但这个也是最后一个nn测试字符串是

php - 使用 preg_match_all 将所有数字与正则表达式匹配

我有一个文本,并尝试为其中的每个3号数字添加链接。我使用带有模式的preg_match_all:(^|[^\d])(\d{3})($|[^\d])此处使用分组来仅将链接添加到数字,而不添加到它们的邻居。测试用例是:a123234b-必须匹配123和234a123_234b-必须匹配123和234aa123234b-必须匹配123和234a0123234b-必须匹配仅234123a234b-必须匹配123和234a123234-必须匹配123和234测试2和3工作正常,其他测试失败,因为2个数字之间有空格。如何匹配两个数字之间只有1个空格? 最佳答案

php - 正则表达式 - 根据标点符号/空格将字符串拆分为数组

我需要一种方法根据标点符号或空格的存在将字符串分成几个不同的部分。我的意思是,每个单词都应该被拆分到它自己的数组元素中,此外,单词开头或结尾的标点符号也应该放入它自己的数组元素中数组元素。例如:我需要能够转换字符串Hello,HarryPotter。我是汤姆·里德尔。进入array("Hello",",""Harry","Potter"".","I'm","Tom","Riddle",".")因此单词中间的标点符号(例如单词中间的撇号)不应导致分隔**编辑:**为了阐明所需的行为,I'm、didn't等应该保持一个词,但是你好!,"okay,等开头或结尾的标点符号要分开。此外,我希望包

php - 正则表达式:如何查找后跟非字母数字的字符串

我正在尝试使用正则表达式(在php中)来查找必须后跟非字母数字字符(不区分大小写)的特定字符串。ExampleString:Doggyisalazydog!Doggy.DogandI.SearchString:DogExpectedResult:Doggyisalazydog!Doggy.DogandI.所以它不应该匹配“Doggy”,因为Dog子字符串后面没有跟一个非字母数字字符。我正在按照这些思路尝试一些事情,但它并没有完全按照我的意愿行事。preg_replace("/(dog)[^a-zA-Z0-9\s\p]/i/","",$str); 最佳答案

c# - 是否可以将 PHP Regex(使用子例程调用)转换为 C# regex?

示例php正则表达式(如下)使用子例程调用来工作。如果我尝试将它与C#Regex类一起使用,我会收到一个错误:Unrecognizedgroupingconstruct是否可以将其重写为C#正则表达式语法?是简单的翻译,还是需要使用其他(正则表达式)方法?如果不可能,它正在使用的东西的名称是什么,那么我可以将它添加到这个问题中,以使其对遇到相同问题的其他人更有用?适用于所有jsonRFC测试数据的PHP$pcre_regex='/(?(DEFINE)(?-?(?:[1-9]\d*|0)(\.\d+)?(e[+-]?\d+)?)(?true|false|null)(?"(?>[^"\\\

php - 什么是替换行结尾的跨平台正则表达式?

我有一个类似"foo\nbar"的字符串,但根据平台的不同,它可能会变成"foo\n\rbar"或其他任何形式。我想用","替换新行。有没有适合我的(php)正则表达式? 最佳答案 试试正则表达式(?:\r\n|[\r\n]):preg_replace('/(?:\r\n|[\r\n])/',',',$str) 关于php-什么是替换行结尾的跨平台正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

用于 IP 到位置 API 的 PHP 正则表达式

我如何使用正则表达式获取有关IP到位置API的信息这是APIhttp://ipinfodb.com/ip_query.php?ip=74.125.45.100我需要获取国家/地区名称、地区/州和城市。我试过这个:$ip=$_SERVER["REMOTE_ADDR"];$contents=@file_get_contents('http://ipinfodb.com/ip_query.php?ip='.$ip.'');$pattern="/(.*)/";preg_match($pattern,$contents,$regex);$regex=!empty($regex[1])?$rege

php - 拼图 : Splitting An HTML String Correctly

我正在尝试通过标记拆分HTML字符串,以便在不显示完整帖子的情况下创建博客预览。这比我最初想象的要更难。以下是问题:用户将创建HTML通过所见即所得的编辑器(CKEditor)。标记不能保证是漂亮或一致。token,read_more(),可以放置在字符串中的任何位置,包括嵌套在段落标记。得到的第一个分割字符串必须是对所有人有效的HTML代币的合理使用。可能的用途示例:Sometexthere.read_more()Sometextreadmore()here.read_more()read_more()read_more()到目前为止,我已经尝试过只拆分token上的字符串,但它留下

PHP mb_ereg_replace 不替换而 preg_replace 按预期工作

我正在尝试用空字符串替换字符串中的所有非单词字符(不包括空格),并将所有多个空格放在一起作为一个空格。以下代码执行此操作。$cleanedString=preg_replace('/[^\w]/','',$name);$cleanedString=preg_replace('/\s+/','',$cleanedString);但是当我尝试使用mb_ereg_replace时,什么也没有发生。$cleanedString=mb_ereg_replace('/[^\w]/','',$name);$cleanedString=mb_ereg_replace('/\s+/','',$clean

php - 爆炸的病态正则表达式(时间和内存)?

什么是破坏许多解析器(时间和内存)的病态正则表达式?哪些解析器?正则表达式越基础和标准,非恶意用户无意中想出它的可能性就越大。请随意发布实际时间和内存数据以及解析器版本。(我似乎记得在PERL中过度的回顾断言或(编辑:)回溯据说可以做到这一点,或者至少曾经是。还有别的吗?) 最佳答案 改编自文章RegularExpressionMatchingCanBeSimpleAndFast(butisslowinJava,Perl,PHP,Python,Ruby,...)中的第一个示例:perl-e'$n=29;("a"x$n)=~(("a?