草庐IT

php preg_replace 删除整行(从多行的 block 中),如果它包含一个词的出现

伙计们(preg_replacegurus);我正在寻找一个preg_replace片段,我可以在php文件中使用它,如果一个词出现在特定行中,则整行被删除/替换为空行伪代码:$unwanted_lines=array("word1","word2"."word3");$new_block_of_lines=preg_replace($unwanted_lines,block_of_lines);谢谢。 最佳答案 表达式首先,让我们计算出匹配单词数组所需的表达式:/(?:word1|word2|word3)/(?:...)表达式创建

php - preg_replace 使用模式作为替换数据数组的索引

我想知道是否有一种简单的方法可以将preg_replace中的匹配模式用作替换值数组的索引。例如preg_replace("/\{[a-z_]*\}/i","{$data_array[\1]}",$string);搜索{xxx}并将其替换为$data_array['xxx']中的值,其中xxx是一个模式。但是这个表达式不起作用,因为它的php.ini无效。我已经写了下面的函数,但我想知道是否可以简单地做到这一点。我可以使用回调,但如何将$data_array也传递给它?functionmailmerge($string,$data_array,$tags='{}'){$tag_star

php - preg_replace 导致美元符号被删除

我有一个电子邮件系统,用户可以在其中写一条消息,它会发送消息。我刚刚发现的主要问题,请考虑这段代码$findEmail=$this->Data->field('body',array('id'=>1610));//$getUserEmailTemplatewilltakefrmdbaseande.g://Hi,@@MESSAGE@@.From:StackOverflow//Itshouldchange@@MESSAGE@@parttodatafrom$findEmail(inthisexampleisthe$74.97...)$getUserEmailTemplate=$findUse

php - preg_split 与 mb_split

根据PHPmanual,PCRE正则表达式的u修饰符为模式和主题字符串启用UTF-8支持。考虑到这一点,使用带有u修饰符的PCRE表达式和相应的mb_*多字节字符串函数之间有什么区别吗?(假设所有字符串都是UTF-8编码。)例如,考虑preg_split与mb_split:两者preg_split('/'.$pattern.'/u',$string);和mb_split($pattern,$string);似乎返回相同的结果。那么,应该优先选择哪一个呢?这有关系吗? 最佳答案 主要区别在于preg_函数使用pcrelibrary,当

php - preg_replace() 正则表达式以匹配 CSS 文件中的相对 url() 路径

我正在组合一些CSS文件并将它们写入单独目录中的文件。我正在尝试替换相对url()值以使用新文件位置,忽略任何绝对URL。这是一些示例CSS:#TEST{background:url(test.jpg);background:url('test.jpg');background:url("test.jpg");background:url(http://example.com/test.jpg);background:url('https://example.com/test.jpg');background:url("http://example.com/test.jpg");bac

php - 警告 : preg_match() [function. 预匹配]:未知修饰符 '/'

这个问题在这里已经有了答案:Warning:preg_replace():Unknownmodifier(3个答案)关闭3年前。我正在尝试使用preg_match返回页面源代码中包含在“”中的所有URL。我使用的代码是preg_match('"http://(.+?)\"',$code,$matches);我收到以下错误:Warning:preg_match()[function.preg-match]:Unknownmodifier'/'in....online13

php - preg_match_all() [function.preg-match-all] : Unknown modifier ']'

使用了几种不同的模式,但它们都出现了这个错误-那是怎么回事?我最短的诊断是:$pattern="]*[^/])>";preg_match_all($pattern,$subject,$matches);谢谢 最佳答案 您缺少正则表达式分隔符。尝试:$pattern="#]*[^/])>#i"; 关于php-preg_match_all()[function.preg-match-all]:Unknownmodifier']',我们在StackOverflow上找到一个类似的问题:

php - 任何 preg_match 来检查 url 是否是 youtube/vimeo/dailymotion 视频链接?

检查url是否为youtube/vimeo/或dailymotion的视频链接的最佳preg_match语法是什么?也许如果它很难,那么就检查域名。谢谢 最佳答案 我不会为此使用preg_match()。我想parse_url()可能是更好的选择。您可以将URL字符串传递给它,它会为您将其分解为所有子组件。我不知道您提到的那些网站的具体视频URL是什么样子,但我相信您可以为每个可以与parse_url()来识别。例如,YouTube链接的分割可能如下所示:$res=parse_url("http://www.youtube.com/

php - preg_replace - 从字符串中去除不需要的字符以返回数值

我讨厌正则表达式,我希望有人可以帮助我使用正则表达式来与preg_replace一起使用。我想使用preg_replace从字符串中去除不需要的字符以仅返回一个数值。字符串格式如下:一些文本100英镑100英镑一些文字一些文本100一些文本非常感谢 最佳答案 $NumericVal=preg_replace("/[^0-9]/","",$TextVariable);[]中的^表示除以下内容以外的任何内容编辑删除了多余的+ 关于php-preg_replace-从字符串中去除不需要的字符以

php - 如何检查 preg_match() 是否为 False 而不是 True?

我有这段代码可以确保用户名只是字母和数字。但是我的代码设置方式,我需要它来检查preg_match的结果是false。现在它说“ifsecureechothis”。我需要它的逻辑说“如果不安全就说这个”。我该怎么做?if(preg_match('/[A-Z]+[a-z]+[0-9]+/',$username)){echo'Secureenough';} 最佳答案 你可以像这样否定条件:if(!preg_match('/^[A-Za-z0-9]+$/',$username)){echo'Notsecureenough';}此外,如果您