Regex Perl读取文件并提取价格
一个file.txt文件包含字符串“hello the apple cost 10.99 today” 如何仅提取10.99 这就是我到目前为止所做的:Regex Perl读取文件并提取价格,regex,perl,Regex,Perl,一个file.txt文件包含字符串“hello the apple cost 10.99 today” 如何仅提取10.99 这就是我到目前为止所做的: open READFILE, ("<file.txt"); while (<READFILE>) { if ($a = $_ =~ m/\d\.\d/) { print "$a\n"; } } 打开READFILE,(“将代码更改为此 while (my $a = <DAT
open READFILE, ("<file.txt");
while (<READFILE>)
{
if ($a = $_ =~ m/\d\.\d/)
{
print "$a\n";
}
}
打开READFILE,(“将代码更改为此
while (my $a = <DATA>) {
if ($a =~ s/.*?(\d+\.\d+).*/$1/)
{
print "$a\n";
}
}
正则表达式*?(\d+\.\d+).
已与输入字符串匹配,匹配成功后,将捕获输入字符串中的小数点编号。通过打印组索引1,您将获得存储的小数点编号。您获得的1表示存在匹配。您需要括号来捕获匹配
open READFILE, "<file.txt";
while (<READFILE>)
{
if (m/([\d\.]+)/)
{
my $price = $1;
print "price = $price\n";
}
}
openreadfile,”openreadfile,“file.txt”;
而()
{
如果($\=~/(\d+\.\d+/)
{
打印“$1\n”;
}
}
你可以开始了谢谢,这很好!你能一个接一个地解释正则表达式的组成部分吗?谢谢。谢谢你的代码,括号里的意思是正则表达式中的这个吗?/()/是的,在()中的内容在下一行显示为$1
open READFILE, "<file.txt";
while (<READFILE>)
{
if (m/([\d\.]+)/)
{
my $price = $1;
print "price = $price\n";
}
}
open READFILE, "file.txt";
while (<READFILE>)
{
if ($_ =~ /(\d+\.\d+)/)
{
print "$1\n";
}
}