本文目录一览:
- 1、PHP 字符串关键字匹配
- 2、php中正则表达式匹配字符串并输出
- 3、php中正则匹配字符串中的指定字符
- 4、php 怎么匹配两个字符串的相似度
- 5、【php】同一字符串,多个条件,如何高效的匹配?
PHP 字符串关键字匹配
只要内容中有关键字就替换成超链接
function TextHandle($source, Array $texts) {
/**
* @source String 需要处理的源字符串
* @texts Array 需要替换的所有关键字
*
*/
foreach ($texts AS $text) {
$source = str_replace($text, "a href=''" . $text . "/a", $source);
}
return $source;
}
$source = "你好,我是一个帅哥";
echo TextHandle($source, ['你好', '帅哥']); // 将 [你好][帅哥] 替换掉.
php中正则表达式匹配字符串并输出
用explode更方便,例如:
$str=".....\t分割的字符串";
list($t,$r)=explode("\t",
$str);
echo
$r;
上面的$t是用来占位的,代码执行后$r就是我们需要的第二个字段值
php中正则匹配字符串中的指定字符
?php
$str = "0502-cpd-wx-html-new-01";
$str = preg_replace('/^([^\-]+\-){4}([^\-]+)\-[^\-]+$/','$2',$str);
echo $str;
?
php 怎么匹配两个字符串的相似度
php自带一个函数similar_text,可以计算两个字符串的相似度,但是这个的准确性、速度不是很好。网上有很多其他的方法和现成的包,你可以搜索看看。下面简单列举一个类
class LCS {
var $str1;
var $str2;
var $c = array();
/*返回串一和串二的最长公共子序列*/
function getLCS($str1, $str2, $len1 = 0, $len2 = 0) {
$this-str1 = $str1;
$this-str2 = $str2;
if ($len1 == 0) $len1 = strlen($str1);
if ($len2 == 0) $len2 = strlen($str2);
$this-initC($len1, $len2);
return $this-printLCS($this-c, $len1 - 1, $len2 - 1);
}
/*返回两个串的相似度*/
function getSimilar($str1, $str2) {
$len1 = strlen($str1);
$len2 = strlen($str2);
$len = strlen($this-getLCS($str1, $str2, $len1, $len2));
return $len * 2 / ($len1 + $len2);
}
function initC($len1, $len2) {
for ($i = 0; $i $len1; $i++) $this-c[$i][0] = 0;
for ($j = 0; $j $len2; $j++) $this-c[0][$j] = 0;
for ($i = 1; $i $len1; $i++) {
for ($j = 1; $j $len2; $j++) {
if ($this-str1[$i] == $this-str2[$j]) {
$this-c[$i][$j] = $this-c[$i - 1][$j - 1] + 1;
} else if ($this-c[$i - 1][$j] = $this-c[$i][$j - 1]) {
$this-c[$i][$j] = $this-c[$i - 1][$j];
} else {
$this-c[$i][$j] = $this-c[$i][$j - 1];
}
}
}
}
function printLCS($c, $i, $j) {
if ($i == 0 || $j == 0) {
if ($this-str1[$i] == $this-str2[$j]) return $this-str2[$j];
else return "";
}
if ($this-str1[$i] == $this-str2[$j]) {
return $this-printLCS($this-c, $i - 1, $j - 1).$this-str2[$j];
} else if ($this-c[$i - 1][$j] = $this-c[$i][$j - 1]) {
return $this-printLCS($this-c, $i - 1, $j);
} else {
return $this-printLCS($this-c, $i, $j - 1);
}
}
}
【php】同一字符串,多个条件,如何高效的匹配?
楼主的意思的是看一个字符串里有多少种字符吗?如果是这样可以这样做:
用两个函数处理即可:
$array=explode($str);
$array=array_unique($array);
第一个函数把字符串$str分解成一个数组,赋给$array;
然后去除数组中相同的元素即可,剩下的就是数组在赋给$array即可。
纯手打,望采纳!