在其末尾复制匹配的线条图案

时间:2015-09-07 10:08:12

标签: regex bash replace find

我希望匹配文本中的模式,然后将其附加到行尾。在下面的情况下,我想匹配数字,然后将其粘贴在行尾。如果匹配两个模式,希望以逗号分隔。 基本上我在寻找如何将匹配部分用作变量。

我希望在Bash中这样做。

abc 123=
agdaf456ad
dfaf879:
abc123xyz12:

abc 123=123
agdaf456ad456
dfaf879:879
abc123xyz12:123,12

2 个答案:

答案 0 :(得分:2)

这样的东西
(\d+)(.*)$

并替换为

$1$2$1

Regex Demo

示例

$replace = preg_replace("/(\d+)(.*)$/", "$1$2$1", "abc 123=");
echo $replace;
=> abc 123=123

答案 1 :(得分:0)

要获取给定字符串中的所有数字序列,您可以使用仅仅\d+正则表达式,然后只是内部获取的结果数组并将其附加到输入字符串:

$str = "abc123xyz12:";
preg_match_all('/\d+/', $str, $m);
$append = implode(",", $m[0]);
echo $str . $append;

请参阅demo