2

所以我才刚刚开始学习正则表达式。我必须在一个大字符串中提取一个子字符串。

我的字符串基本上是一个包含很多东西的大行。我已经确定了我需要提取的模式。我需要此行中的数字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包括空格。

我对上述正则表达式的(有限)解释使我相信它会输出数字。

任何帮助表示赞赏。

4

1 回答 1

5

语法错误是因为 ":" 与 "$p" 没有用空格(或制表符)分隔。修复后,正则表达式有一个尾随空格,这将阻止它匹配。解决这两个问题后,您的示例脚本将按预期工作。

于 2015-02-15T02:12:30.463 回答