我有以下格式的輸入字串(右括號后可能會出現空格)。
(1,'c21bd4d76fe97759aa27a0c99bff6710')
我想將 number 和 id 提取到不同的變數中,我應該怎么做?
我嘗試了以下方法,但我想要一些可以與正則運算式一起使用的東西,因為輸入字串后的額外空間會破壞我的解決方案。
$text = "(1, 'c21bd4d76fe97759aa27a0c99bff6710')";
my @parts = split(/,/,$text);
my $rowd_id = substr(@parts[0],1);
my $id = substr(@parts[1],2,-2);
print "$rowd_id $id\n";
uj5u.com熱心網友回復:
您可以在正則運算式中使用捕獲組:
my $text = "(1, 'c21bd4d76fe97759aa27a0c99bff6710')";
my $re = qr/\(\h*(\w )\h*,\h*'([^'] )'/;
my @captured = $text =~ $re;
if( @captured ) {
my $rowd_id = @captured[0];
my $id = @captured[1];
print "$rowd_id :: $id\n";
}
輸出:
1 :: c21bd4d76fe97759aa27a0c99bff6710
正則運算式詳細資訊:
\(: 匹配一個(\h*: 匹配 0 個或多個空格(\w ): 匹配捕獲組 #1 中的 1 個單詞字符\h*: 匹配 0 個或多個空格,: 匹配一個,\h*: 匹配 0 個或多個空格': 匹配一個'([^'] )': 匹配 1 個不在捕獲組 #2 中的字符': 匹配一個'
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/485662.html
上一篇:組合正則運算式字符類
