我有以下输入,它存储在名为$ var1。
的单个标量变量中输入(即存储在$ var1中)
Gain Dead_coverage Export_control Functional_coverage Function_logic top dac_decoder Datapath System_Level Black_DV Sync_logic temp1 temp2 temp3 temp4 temp5 temp6 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
预期产出:
Gain
Dead_coverage
Export_control
Functional_coverage
Function_logic
top
dac_decoder
Datapath
System_Level
Black_DV
Sync_logic
temp1
temp2
temp3
temp4
temp5
temp6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
我的代码:
我曾尝试过以下正则表达式。
$var1=tr{\s}{\n};
上面的正则表达式没有带来我预期的输出。
注意:这些数字最多可以包含n个数字,并且该字符可以以大写或小写开头或结尾。无论我需要带来什么样的预期输出。对于那个正则表达式我可以使用它。
要求:
1.split space into new line.
2.for numbers(i.e 123456789101112.....) it should be considered as follows
1
2
3
4
5
6
7
8
9
10
11
12
.
.
.
so on,...
After digit 9 the other numbers should be considered as double digit.
答案 0 :(得分:1)
tr
是音译。这只适用于个别角色,而不适用于模式。您需要将s///
与/g
修饰符一起使用。
$var1 =~ s/\s/\n/g;
您也可以使用split
和join
。
$var1 = join "\n", split / /, $var1;
即使有很多字符串,它在性能方面也不应有所作为。