草庐IT

PREG_REPLACE

全部标签

php - 正则表达式 (preg_match)

这是无效的代码:Hyperlink';}?>我想要的是,如果链接前后有空格,它就不应该显示链接。所以现在它应该什么都不显示。但它仍然显示链接。 最佳答案 这样也可以匹配ID12,因为3不是空格,http:/的/也不是空格。你可以试试:preg_match_all('/^\S*\/videosite\.com\/(\w+)\S*$/i',$matchWith,$matches); 关于php-正则表达式(preg_match),我们在StackOverflow上找到一个类似的问题:

php/html : replace html closing tags with newlines

我在网上抓取html,当我使用phpstrip_tags时,它会将整个html压缩成一行,删除所有结构。我想通过用换行符替换关闭的h、p和br标记来保留结构。pregreplace是最好的解决方案吗?一旦我替换了所有结束标签,我将运行一个strip标签,但这样我就有了一个基本结构。 最佳答案 $str='somehtml';$tags=array('','','','','','','','','','','');$str=str_replace($tags,"\n",$str);//thenstriptags

php - Preg_replace BBCode 链接

我有这个bbcode:[url=http://www.youtube.com/watch?v=h1bIEK1h150]IfIofferyoumysoul[/url]例如。我怎样才能把它变成这样:IfIofferyoumysoul 最佳答案 你需要一个正则表达式。考虑到bbcode可以有文本URL或只有URL,您将需要两个语句:$message=preg_replace('@\[url=([^]]*)\]([^[]*)\[/url\]@','$2',$message);$message=preg_replace('@\[url\]([

php - preg_replace 除字符串开头的 + 以外的所有非数字字符

假设输入字符串+123-321+123345,使用PHP的正则表达式函数我想删除所有非数字([^\d])字符,除了开头的+字符。+可能存在也可能不存在,因此给定字符串123-321+123345结果应该相同(123321123345)。目前的解决方法是检查+,然后运行​​preg_replace('/[^\d]+/','',$string),但我确信必须有一个纯正则表达式的解决方案来解决这个问题。谢谢! 最佳答案 试试这个/(?\D与[^\d]相同(?是一个负向后视,确保在非数字之前没有字符串的开头。这个表达式将匹配所有不是字符串开

php - 如何使用 preg_match 返回只需要的匹配

我正在尝试从这样的uris列表中解析一个整数:uri.com/upload/123456789_abc.ext我正在使用这种模式:preg_match("#uri\.com\/upload\/(.*?)_#is",$uri,$match);哪个有效并返回:Array([0]=>uri.com/upload/123456789_[1]=>123456789)但我想知道是否有办法使$match=="123456789"而不是返回具有多个值的数组。只修改模式是否可以做到? 最佳答案 它将始终返回一个数组,但您可以更改模式,以便它只匹配您想

PHP 正则表达式将两个斜杠 (//) 替换为新行

我在这里尝试做的是获取一个通常可能包含代码注释的字符串,并将其替换为其他内容,尤其是将其包装在其他内容中。我很确定preg_replace函数可以在这里工作,但我不知道从哪里开始使用Regex。例如:Helloworld//thisisacommentTesting//nottestingTestagain会变成Helloworld%//thisisacomment%Testing%//nottesting%Testagainpreg_replace('???','%$1%',$matches);是我自己能想到的,非常感谢任何帮助! 最佳答案

php - str_replace 不会替换阿拉伯字符

';$patterns=array("على","مع");$replacements=array("","");$r_string=str_replace($patterns,$replacements,$utf8_string);//echo$r_string;print_r($r_string);echo'';//$words=preg_split("/(|مع|على)/",$r_string);$words=explode("",$r_string);$num=count($words);echo'Thereare'.$num.'words.';?>我有这个代码来计算阿拉伯语

php - 为什么我的 htmlspecialchars 和 str_replace 不工作?

对于我的例子,请访问http://jflaugher.mystudentsite.net/cmweb241/cmweb241_lab2.html我只需要使用htmlspecialchars和str_replace函数来删除双引号和单引号。为什么这对我不起作用?我对PHP很陌生:/YourUsernameis:$username.";echo"YourPasswordis:$password.";echo"YourCommentwas:$comment.";?> 最佳答案 按照AlexLunix指定的相反顺序使用它$username=

php - 在 PHP 中删除空格

我正在处理一些我想删除的多余空白。一个例子:Envelopes/Env.Thick/Env.Thin0pagesLabel0pagesHagaki0pagesReplaceCountDrumUnit0Toner0我已经尝试使用preg_replace('/\s\s+/','',$content);但结果不是我所期望的。preg_replace的输出:信封/环境。厚/环境。薄0页标签0页Hagaki0页更换计数鼓单元0碳粉0我想要的:Envelopes/Env.Thick/Env.Thin0pagesLabel0pagesHagaki0pagesReplaceCountDrumUnit0

php - 在匹配使用变量 : PHP:preg_match 形成的模式时转义字符的特殊含义

我正在执行正则表达式匹配以查找文本中某些特定单词集的首次出现。因为我不想在它们是其他单词的子字符串时生成误报,所以我想使用模式。例如,我想找到整个单词“DOM”,而不是“RANDOMIZER”中的子字符串DOM,比方说。因此,我将模式用作"\bDOM\b"来考虑所有出现的DOM,两侧都有单词边界。但是DOM和其他此类模式字符串来自数组$tags。将每个标签从$tags读入$tag,比较实际上是:preg_match("/\b$tag\b/",...)但如果$tag=".NET",这会遇到麻烦。然后"\b$tag\b"将开始匹配CNET、INET等字符串,将.解释为通配符。那么,我们如何