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中可以找到,那么正则表达式怎么做呢?目前,我的技能只能让我选择在字符串上进行循环,我知道这不是最顺利的方法 谢谢你的帮助 您可

如何在php中,将一个字符附加到另一个字符中!一个字符串,可能带有正则表达式

如果我有一个数组,就说:

$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"
}