Php 附加到字符串中找到的字符
如何在php中,将一个字符附加到另一个字符中!一个字符串,可能带有正则表达式 如果我有一个数组,就说:Php 附加到字符串中找到的字符,php,regex,Php,Regex,如何在php中,将一个字符附加到另一个字符中!一个字符串,可能带有正则表达式 如果我有一个数组,就说: $array=["a","b","c","d","e","f","g","h","i","j"]; $long_string="yada yada yada yada yada...."; 如果我想在$array中的每个字符后面加一个感叹号,在$long_string中可以找到,那么正则表达式怎么做呢?目前,我的技能只能让我选择在字符串上进行循环,我知道这不是最顺利的方法 谢谢你的帮助 您可
$array=["a","b","c","d","e","f","g","h","i","j"];
$long_string="yada yada yada yada yada....";
如果我想在$array中的每个字符后面加一个感叹号,在$long_string中可以找到,那么正则表达式怎么做呢?目前,我的技能只能让我选择在字符串上进行循环,我知道这不是最顺利的方法
谢谢你的帮助 您可以使用它来获取一个搜索和替换值数组。替换值数组可以使用从搜索字符数组轻松构建
见:
正则表达式方法(如果搜索项是单个字母字符):
看。正则表达式将是/[abcdefghij]/
(匹配单个字符的字符类),替换项包含对整个匹配($0
)和的反向引用代码>添加到每个匹配的符号
如果您的搜索项目是多个字符字符串,并且可以包含非单词字符,则更安全的做法是使用替换组并预先引用项目():
正则表达式看起来像(?:a | b | c | d | e | f | g | h | i | j)
所有regexp都可以在进行测试。它不是regex,但您可以有一个简单的解决方案,而无需循环字符串:
$array=["a","b","c","d","e","f","g","h","i","j"];
$long_string="yada yada yada yada yada....";
$array_string = str_split($long_string);
$unique = array_unique($array_string);
foreach($array as &$a){
if(in_array($a,$unique)){
$a = $a.'!';
}
}
var_dump($array);
输出:
array(10) {
[0]=>
string(2) "a!"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(2) "d!"
[4]=>
string(1) "e"
[5]=>
string(1) "f"
[6]=>
string(1) "g"
[7]=>
string(1) "h"
[8]=>
string(1) "i"
[9]=>
string(1) "j"
}
我希望这能有所帮助谢谢您抽出时间,但我不想使用for循环。长字符串可能是一篇博客文章或一条评论。感谢您的支持。如果角色是这样说的话会怎么样:。;/\最后一个解决办法会奏效。虽然对于单字符,您可以将最后一个字符与第一个字符组合<代码>$rx=“[”.inpode(“,数组映射(函数($i){return preg_quote($i,“/”;},$array))。“]”代码>谢谢,我现在就要回家了,等我进去的时候再试试。
$rx = "(?:" . implode("|", array_map(function($i) {return preg_quote($i, "/");}, $array)) . ")";
echo preg_replace('/'.$rx.'/', '$0!', $long_string);
$array=["a","b","c","d","e","f","g","h","i","j"];
$long_string="yada yada yada yada yada....";
$array_string = str_split($long_string);
$unique = array_unique($array_string);
foreach($array as &$a){
if(in_array($a,$unique)){
$a = $a.'!';
}
}
var_dump($array);
array(10) {
[0]=>
string(2) "a!"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(2) "d!"
[4]=>
string(1) "e"
[5]=>
string(1) "f"
[6]=>
string(1) "g"
[7]=>
string(1) "h"
[8]=>
string(1) "i"
[9]=>
string(1) "j"
}