$recepies =~ s/
(?|
([^\.\/]) ($dimentions)
|
(\(?) ($wholeNumberDecimal) #ex: 1.5
|
(\(?) ($wholeNumber) #ex: 1
|
(\(?) ($wholeNumberFraction)
)
(\s) ($unit)
/transformer($1,$2,$3,$4) /eixg; #the replacement
我想知道如何在这种情况下命名我的捕获。
例如,我想打电话给第一个"前缀"第二个"数字"第三个"空间"和第四个"单位"
答案 0 :(得分:1)
可能就像这样做
$recepies =~ s/
(?|
(?<prefix> [^\.\/] ) # (1)
(?<number> $dimentions ) # (2)
|
(?<prefix> \(? ) # (1), ex: 1.5
(?<number> $wholeNumberDecimal ) # (2)
|
(?<prefix> \(? ) # (1), ex: 1
(?<number> $wholeNumber ) # (2)
|
(?<prefix> \(? ) # (1)
(?<number> $wholeNumberFraction ) # (2)
)
(?<space> \s ) # (3)
(?<unit> $unit ) # (4)
/transformer($+{prefix},$+{number},$+{space},$+{unit}) /eixg; #the replacement
或者像这样
$recepies =~ s/
(?|
(?<prefix> [^\.\/] ) # (1)
(?<number> $dimentions ) # (2)
|
(?<prefix> \(? ) # (1), ex: 1.5
(?<number> $wholeNumberDecimal ) # (2)
|
(?<prefix> \(? ) # (1), ex: 1
(?<number> $wholeNumber ) # (2)
|
(?<prefix> \(? ) # (1)
(?<number> $wholeNumberFraction ) # (2)
)
\s
$unit
/transformer($+{prefix},$+{number},$unit) /eixg; #the replacement