草庐IT

Preg_Replace

全部标签

php - 将文本链接替换为带有 preg_replace 的链接

我似乎在用指向已发布网站的链接替换文本链接时遇到问题,它不是链接。代码:$status_text=preg_replace('#(\A|[^=\]\'"a-zA-Z0-9])(http[s]?://(.+?)/[^()\s]+)#i','\\1\\3',$status_text);echo$status_text;$status_text是从名为contents的MySQL字段中提取的,并包含其他文本,但我只想链接链接。此外,我还希望它不显示完整的URL,只显示主域。更新:我们在同一页面上有另外两个preg_replaces,寻找在它们前面带有+和#的链接到网站区域的东西,它们目前可以

PHP: preg_match - "Delimiter must not be alphanumeric or backslash"

这个问题在这里已经有了答案:PHPusingpreg_replace:"Delimitermustnotbealphanumericorbackslash"error(5个答案)关闭7年前。有人知道这个正则表达式有什么问题吗?它在RegexPal和RegExr等网站上运行良好,但在PHP中它给了我这个警告但没有结果:Warning:preg_match()[function.preg-match]:Delimitermustnotbealphanumericorbackslash这是我的代码:preg_match('name="dsh"id="dsh"value="(.*?)"','n

php - 为什么 preg_match 不起作用?

自从“ereg”贬值后,我就开始使用“preg_match”。不幸的是,在我的代码中,它不接受我的有效电子邮件地址。我确信我正在使用的这个正则表达式正在工作,但我正在寻找的是执行此功能的替代方法或指出我做错了什么。这是我的功能:functionvalidate($email){$regex="^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([

php - 通过 "preg_match_all"函数特殊字符获取html内容时显示不正常,如何解决?

我正在使用下面的代码获取html内容,preg_match_all('/(.*?)/s',$str,$matches);echo$matches[1][0];内容已正确获取,但一些特殊字符和文本无法正常显示“responsetowhat?”显示为“responsetowhat?”butitdoesn't显示为但没关系。一些空白显示为如何解决这个问题..? 最佳答案 您有unicode问题,请尝试将其添加为脚本的第一行:header('Content-Type:text/html;charset=utf-8');

php - 似乎无法将精确字符串与 Preg_replace 匹配

我正在尝试使用php中的preg_replace函数来精确匹配字符串。我只想匹配具有单个“@”符号的实例。我还需要一个变量作为模式传入。$x="@hello,@@hello,@hello,@@hello"$temp='@hello'$x=preg_replace("/".$temp."/","replaced",$x);结果应该是:$x="replaced,@@hello,replaced,@@hello"提前谢谢你。 最佳答案 添加负数look-behind(?如果$temp匹配失败前面是@(或者,简单来说,如果@之前有一个@he

PHP preg_grep 反向匹配模式

我构建了一个简单的代码来解析几个磁盘中的所有音乐文件夹并将列表放入一个数组中。当文件夹名称是类别时,文件夹名称以多个空格开头,当它们是“最终文件夹”时,文件夹名称以单个空格开头。例如。看到这个结构:[0]=>/Volumes/SAMPLES/VOCALS/[1]=>/Volumes/SAMPLES/VOCALS/AFRICA/[2]=>/Volumes/SAMPLES/VOCALS/AcmeIncClubVocals/[3]=>/Volumes/SAMPLES/VOCALS/AtomicIncDanceVocals/[4]=>/Volumes/SAMPLES/VOCALS/AFRICA

PHP preg_match_all,检查和爆炸

我想检查'n'分解这个字符串:{$gallery#pager/collectionName/imageName/manual/no_effect/foo1/foo2/.../fooN}到:var_name[0]=>'gallery',modul_name[0]=>'pager',3[0]=>'collectionName',4[0]=>'imageName',5[0]=>'manual'...N[0]=>'fooN'我制作了以下正则表达式:/{\$(?P[^#]+)#(?P[^\/]+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)

sql - regexp_replace 配置单元中的正则表达式

我的表中有几行。这行看起来像:Atribute|---------------|B=10;MB=12;A=33|---------------|MB=16;B=12;A=23|---------------|A=10;MB=23;B=58|等等我只需要在“B=”之后获取数字。对于那个例子,我应该得到:101258为了得到这个结果,我应该写什么选择查询?(查询不应与'MB='和'B='混淆) 最佳答案 hive>selectregexp_extract('B=10\;AB=12\;B=33','(\;|^)B=([0-9]*)',2)

java - regexp_replace 异常

我正在尝试在ClouderaHue界面中运行一个配置单元查询,它可以很好地处理几百条记录。当我在更大的数据集上运行它时,它失败了。我试着在互联网上搜索它,但看起来有很多类似的错误,但不是我正在寻找的确切解决方案。我在我的配置单元查询中使用了redexp_replace,我认为这不会导致任何异常(我的印象是它可以轻松处理字符串和NULL类型)我得到的错误是java.util.regex.PatternSyntaxException:Unmatchedclosing')'nearindex12更新:这是导致问题的记录:columnA:ReadData(或ListDirectory)B列:列

regex - 使用配置单元 regexp_replace 从数据中删除大括号和美元符号

我需要从配置单元中的一个字段中删除美元符号和大括号。示例数据:$210.53$210.53($390.53)($210.53)问题是有些记录有大括号,有些则没有。以下是我想出的语法:selectREGEXP_REPLACE(amount,'\(\$|\)','')asamountfromtablewhereid=1234;输出:$210.53$210.53390.53210.53此语法不会从没有大括号的记录中删除美元符号。有人可以指导我吗? 最佳答案 如果您想从字段中删除a)美元符号和b)括号,您需要编写涵盖这两种情况的正则表达式。