所以我刚刚开始学习正则表达式。我必须在一个大字符串中提取一个子字符串。
我的绳子基本上是一条巨大的线,里面有很多东西。我已经确定了需要提取的模式。我需要这行的号码A lot of stuff<li>65,435 views</li>a lot of stuff
这个号码只是举个例子。
整个字符串实际上是一个大行,我的文件views.txt
包含了很多这样的行。
所以我试过了,
while read p
do
y=`expr "$p": ".*<li>(.*) views "`
echo $y
done < views.txt
我希望在这个views.txt
文件中迭代所有这样的行,并打印出数字。
我得到了一个语法错误。我真的不知道这里出了什么问题。我相信我已经用<li>
和views
(包括空格)正确地将数字置于两边。
我对上述正则表达式的(有限的)解释使我相信它会输出数字。
感谢您的帮助。
语法错误是因为":"与"$p"没有用空格(或制表符)分隔。修复后,正则表达式有一个尾部空白,这将阻止它匹配。解决了这两个问题,您的示例脚本可以按预期工作。