我不是 Perl 和正则表达式的专家。所以这是我的问题。
我将如何编写一个正则表达式来匹配指定字符右侧的字符串中的所有单词并在 Perl 中分别检索每个单词?
我不明白如何匹配未指定数量的单词,然后最重要的是一次检索一个?如果这是不可能的,我在 Perl 中最好的选择是什么?
EG:我有一个 C 作业,例如b=var1+var2
. 我希望能够提取var1
它var2
是否存在。重要的是我不想匹配特定的var1
and var2
,而是赋值运算符之后的任何变量。
谢谢您的帮助!
也许以下内容对您有用:
use Modern::Perl;
my $string = 'b=var1+var2';
my $after = '=';
say for ( $string =~ /$after(.*)/ )[0] =~ /(\w+)/g;
输出:
var1
var2
希望这可以帮助!
您可以在正则表达式中使用嵌套组。因此,例如,以下正则表达式应该匹配等式字符之后的所有单词(定义为 \w,但您可以调整它)(由非 \w 分隔,但您也可以调整它):
=((?<Word>\w*)[^\w]*)*