首先,我不知道这是否真的可行,但我想要做的是重复正则表达式模式.我正在使用的模式是:
sed 's/[^-\t]*\t[^-\t]*\t\([^-\t]*\).*/\1/' films.txt
Run Code Online (Sandbox Code Playgroud)
输入
250. 7.9 Shutter Island (2010) 110,675
Run Code Online (Sandbox Code Playgroud)
将返回:
Shutter Island (2010)
Run Code Online (Sandbox Code Playgroud)
我匹配所有无选项卡,(250.)然后选项卡,然后所有无选项卡(7.9)然后选项卡.接下来,我将电影片名重新标记,然后匹配所有剩余的字符(110,675).
它工作正常,但即时学习正则表达式,这看起来很难看,正则表达式[^ - \t]*\t在其自身之后重复,无论如何重复这个就像你可以像{2,2}这样的角色?
我试过([^-\t]*\t){2,2}(和变化),但我猜这是试图匹配[^-\t]*\t\t?
此外,如果有任何方法可以使我的上述代码更短更清洁任何帮助将不胜感激.