Maj*_*son 2 regex perl match period
在Perl中使用regex尝试N + 1次后:我遇到以下问题:我需要检索这个:
232310..1.3 3213 2.4 "$250 For My jacket" (2012)
Run Code Online (Sandbox Code Playgroud)
我试图通过以下方式检索它:
if ( $line=~m/^\s+(\d+|\.+)\s+(\d+)\s+(\d+|\.+)\s+(\^"&(\w*|\s*|\D*)"$)\s*\((\d+)\s*/){
$ID=$1;
$Amount=$2;
$Size=$3;
$Item=$4;
$Year=$5;
Run Code Online (Sandbox Code Playgroud)
这是行不通的
(\d+|\.+)表示一个或多个数字或一个或多个句点.但你想要的是([\d.]+)指一个或多个数字或句号.
类似的问题也出现了捕获大小和项目的问题.你也错误地使用了start anchor(^)和end anchor($).
你可以试试:
^\s+([\d.]+)\s+(\d+)\s+([\d.]+)\s+"([^"]+)"\s*\((\d+)\s*
Run Code Online (Sandbox Code Playgroud)