我在Perl中有一个字符串,如:" Full Name (userid)"我只想返回用户ID(" ()" 之间的所有内容).
在Perl中,正则表达式会做什么?
这将匹配\w" ("和" )" 内的任何word()字符
\w匹配单词字符(字母数字或_),不仅[0-9a-zA-Z_]是非罗马脚本中的数字和字符.
my($username) = $str =~ /\((\w+)\)/;
# or
$str =~ /\((\w+)\)/;
my $username = $1;
Run Code Online (Sandbox Code Playgroud)
如果你需要它s///,你可以用$1或得到变量\1.
$str =~ s/\((\w+)\)/$1:\1/; # pointless example
Run Code Online (Sandbox Code Playgroud)
如果你想捕捉所有可能性,这些将更好地工作:
my($username) = $str =~ /\(([^\)]+)\)/;
# or
my($username) = $str =~ /\((.+?)\)/;
Run Code Online (Sandbox Code Playgroud)
如果您的正则表达式开始变得复杂,我建议您了解该/x选项.
my($username) = $str =~ / \( ( [^\)]+ ) \) /x;
Run Code Online (Sandbox Code Playgroud)
perldoc perlre有关更多信息,
请参阅.
如果你刚刚开始学习正则表达式,我建议你阅读perldoc perlretut.
| 归档时间: |
|
| 查看次数: |
15901 次 |
| 最近记录: |