Php 比较两个字符串,忽略空格、新行和换行符
我想比较两个字符串并突出显示匹配的连续4个或更多单词 当字符串中有双空格或新行时,我遇到了问题,字符串没有突出显示 例如。 假设string1是Lorem ipsum,或者有时称之为lipsum,是用于排版的虚拟文本, 图形或网页设计。 String2是Php 比较两个字符串,忽略空格、新行和换行符,php,Php,我想比较两个字符串并突出显示匹配的连续4个或更多单词 当字符串中有双空格或新行时,我遇到了问题,字符串没有突出显示 例如。 假设string1是Lorem ipsum,或者有时称之为lipsum,是用于排版的虚拟文本, 图形或网页设计。 String2是排版印刷品,图形 预期产出: Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in <span style="color:red">laying
排版印刷品,图形
预期产出:
Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in <span style="color:red">laying out print,
graphic</span> or web designs.
Lorem ipsum,或者有时称之为lipsum,是排版时使用的虚拟文本,
图形或网页设计。
PHP代码:
<?php
$str1 ="Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print,
graphic or web designs.";
$str2 = "/laying out print, graphic/iu";
echo preg_replace($str2, '<span style="color:red">$0</span>', $str1);
?>
一种方法是将$str2
中的任何空格替换为\s+
,然后将匹配$str
中的任何空格序列。然后可在preg_replace中使用,如您当前所做:
$str1 ="Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print,
graphic or web designs.";
$str2 = "laying out
print, graphic";
$regex = preg_replace('/\s+/', '\s+', $str2);
echo preg_replace("/$regex/iu", '<span style="color:red">$0</span>', $str1);
$str1=“Lorem ipsum,或有时称之为lipsum,是排版时使用的虚拟文本,
图形或网页设计。“;
$str2=“布局
“印刷、图形”;
$regex=preg_replace('/\s+/','\s+',$str2);
echo preg_替换(“/$regex/iu”、$0、$str1);
输出:
Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in <span style="color:red">laying out print,
graphic</span> or web designs.
Lorem ipsum,或者有时称之为lipsum,是排版时使用的虚拟文本,
图形或网页设计。
一种方法是将$str2
中的任何空格替换为\s+
,然后将匹配$str
中的任何空格序列。然后可在preg_replace中使用,如您当前所做:
$str1 ="Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print,
graphic or web designs.";
$str2 = "laying out
print, graphic";
$regex = preg_replace('/\s+/', '\s+', $str2);
echo preg_replace("/$regex/iu", '<span style="color:red">$0</span>', $str1);
$str1=“Lorem ipsum,或有时称之为lipsum,是排版时使用的虚拟文本,
图形或网页设计。“;
$str2=“布局
“印刷、图形”;
$regex=preg_replace('/\s+/','\s+',$str2);
echo preg_替换(“/$regex/iu”、$0、$str1);
输出:
Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in <span style="color:red">laying out print,
graphic</span> or web designs.
Lorem ipsum,或者有时称之为lipsum,是排版时使用的虚拟文本,
图形或网页设计。
string1中搜索的string2是否始终是相反的?并非总是如此,但如果是新行,它会失败,string1@Valentino中的双空格总是string2在string1中搜索,或者也可能是相反的?并非总是如此,但如果是新行,string1@Valentino中的双空格则会失败。以下是我的示例。它应该突出显示$answer的最后一段,但由于新行,它没有突出显示。啊。。。这是一个与您所问的问题不同(而且更复杂)的问题…这就是为什么我做了一个简单的问题,并提出了一个简单的问题,但现在我不明白我应该把您的代码放在哪里。@Omi它应该可以。起初我还没有弄清楚你的代码是如何工作的(顺便说一句,这很酷),但再仔细看一看,我确实认为我的解决方案会适合它。实际上所有的努力都是由@fyrye完成的,而不是我。这是前面的问题链接,这是我的例子。它应该突出显示$answer的最后一段,但由于新行,它没有突出显示。啊。。。这是一个与您所问的问题不同(而且更复杂)的问题…这就是为什么我做了一个简单的问题,并提出了一个简单的问题,但现在我不明白我应该把您的代码放在哪里。@Omi它应该可以。起初我还没有弄清楚你的代码是如何工作的(顺便说一句,这很酷),但再仔细看一看,我确实认为我的解决方案会适合它。实际上所有的努力都是由@fyrye完成的,而不是我。这里是前面的问题链接