在两个字符串之间添加变量空格

问题描述:

我没有使用编码语言。这必须是直的正则表达式。在两个字符串之间添加变量空格

我需要在两个字符串之间添加一个可变长度的空白。我传递给正则表达式的字符串有字符串本身的空格的数量,将需要更换:

string1 *27* string2 

,所以我需要插入27个空格到字符串1和字符串2

\*(\d+)\* 
之间的串

这是我的捕捉,它似乎是工作,但我想设置我的这种替换:

\s{$1} 

或本:

$&\s{$1} 

那么你会怎么做呢?我正在使用expresso进行验证,但并非所有正则表达式都被我使用的文本引擎支持。

这是不可能的直正则表达式。正则表达式需要某种解析功能来使用捕获的变量并将其翻译为重复的空格。

你想替换工作的方式也是不可能的。由于正则表达式的替换部分是一个直接的文本替换,而不是另一个正则表达式评估器......它会是一种很酷有一个递归正则表达式虽然:)

+0

啊,这就是我要怎样做:捕捉内线号码,并把它作为数字为#空白的补充。 – ecathell 2012-04-26 13:18:14

+0

@ecathell对不起,这是更具编程性,而不是如何正则表达式工作 – 2012-04-26 14:21:18

一种方法使用perl香味正则表达式:

perl -e ' 
    $s = q[string1 *27* string2]; 
    $s =~ s/\s+\*(\d+)\*\s+/" " x $1/e; 
    print $s 
' 

输出:

string1       string2 
+0

正如我所说的使用任何编码语言是不可能在我的情况。 – ecathell 2012-04-26 13:19:08