模式替换查询。

时间:2010-03-19 18:23:22

标签: php regex preg-replace

目前我有

 Input: e.g., '123456789'.'+'.'987654321'

所需模式:

Output: e.g., '123456789987654321'

如何在php中实现这一点?我不是正在使用正则表达式,所以正则表达式会在preg_replace中为此做什么?

4 个答案:

答案 0 :(得分:0)

我不确定我是否收到你的问题,但如果你问的是如何摆脱加号:


$input = '123456789+987654321';
$output = preg_replace('/([^+]+)\+([^+]+)/', '$1$2', $input);
echo $output, PHP_EOL;

答案 1 :(得分:0)

试试这个。

 $input = "'123456789'.'+'.'987654321'";
 $output = trim("'", preg_replace("/([^+]+)'\.'\+'\.'([^+]+)/", "$1$2", $input));
 // Without RegEx
 $output = trim("'", str_replace("'.'+'.'", "", $input));
 echo $output;

答案 2 :(得分:0)

如果您只输入"123456789+987654321"并希望"123456789987654321"作为输出,则只需删除"+"不需要正则表达式:

$output = str_replace("+", "", $input);

如果要在更大的字符串中替换此模式,可以使用此正则表达式:

$output = preg_replace("/(\\d+)\\+(\\d+)/", "$1$2", $input);

请注意,“+”在正则表达式中具有特殊含义,需要通过反斜杠进行转义。此外,反斜杠在PHP字符串中具有特殊含义,需要通过反斜杠本身进行转义。

所以上面变成了内存中的字符串/(\d+)\+(\d+)/,正则表达式引擎可以理解你的意思是多位数(\d+)和文字加号(\+)。 / p>

答案 3 :(得分:0)

我认为他实际上是在尝试连接

 $customer_id = 123456789;
 $operator_domain = 987654321;

 $Output = $customer_id.$operator_domain;