正则表达式如何匹配字符串中的所有()之间的字符串。

如:字符串abc(@a)defghi(@b)aaaaa,如何获取所有()中间的字符串?
2025-04-28 07:02:00
推荐回答(3个)
回答1:

哎、这个测试好久!在perl里面简直机关重重啊、看结果:
[u@H /billing/user/xufc/pp]$perl
my $line='abc(@a)defghi(@b)aaaaa'; #要用单引号、双引号perl就先给你认为括号里面为空
my @array=($line =~ m/\((.*?)\)/g) ; #语法叫“列表上下文中的m//”,匹配(XX),然后提取出XX
print "@array\n"; #输入完成后、按ctrl+D代表程序结束
@a @b #输出的结果
[u@H /billing/user/xufc/pp]$

这个是perl里面的,其它语言不知道怎么用

回答2:

"(?<=\()[^()]+(?=\))"

回答3:

[u@H /billing/user/xufc/pp]$perl
my $line='abc(@a)defghi(@b)aaaaa'; #要用单引号、双引号perl就先给你认为括号里面为空
my @array=($line =~ m/\((.*?)\)/g) ; #语法叫“列表上下文中的m//”,匹配(XX),然后提取出XX
print "@array\n"; #输入完成后、按ctrl+D代表程序结束
@a @b #输出的结果
[u@H /billing/user/xufc/pp]$

这个是perl里面的,其它语言不知道怎么用