使用expr和regex在linux中提取子字符串

tof*_*ofu 2 regex linux substring expr

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

我的字符串基本上是一个包含很多东西的大行.我已经确定了我需要提取的模式.我需要这一行中的数字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
Run Code Online (Sandbox Code Playgroud)

我希望迭代这个views.txt文件中的所有这些行并打印出数字.

我收到语法错误.我真的不知道这里出了什么问题.我相信我已经正确地通过两侧的数量<li>views包括的空间.

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

任何帮助表示赞赏.

Tho*_*key 5

语法错误是因为":"没有通过空格(或制表符)与"$ p"分隔.修复后,正则表达式有一个尾随空白,可以防止匹配.修复这两个问题,您的示例脚本按预期工作.