×

php如何匹配字符串

php如何匹配字符串(php中的字符串连接符)

admin admin 发表于2023-03-24 06:39:10 浏览49 评论0

抢沙发发表评论

本文目录一览:

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即可。

纯手打,望采纳!