使用regex或bash命令从模板(html)文件获取所有模板变量的唯一列表
我有html模板,我想得到所有模板变量的列表,如:使用regex或bash命令从模板(html)文件获取所有模板变量的唯一列表,regex,bash,templates,Regex,Bash,Templates,我有html模板,我想得到所有模板变量的列表,如: <li>User ID <!--{ID}--></li> 用户ID 是一个模板变量 编辑: 执行此操作的正则表达式模式是: \<\!--\{(.*?)\}--\> \ 我只需要捕捉任何变量的唯一出现,例如,Perl的模板中可能多次出现: perl -lne '{ while (/<!--{(.*?)}-->/g) {$t{$1}++} } END{ pri
<li>User ID <!--{ID}--></li>
用户ID
是一个模板变量
编辑:
执行此操作的正则表达式模式是:
\<\!--\{(.*?)\}--\>
\
我只需要捕捉任何变量的唯一出现,例如,Perl的模板中可能多次出现:
perl -lne '{ while (/<!--{(.*?)}-->/g) {$t{$1}++} }
END{ print for keys %t }' input.html
perl-lne'{while(//g){$t{$1}++}
结束{print for keys%t}'input.html
使用更少的Perl语句:
perl -lpe '{s/.*?(<!--{[^}]*}-->)/\1\n/g}' input | \
grep '<!--{' | sort | uniq
perl-lpe'{s/*?()/\1\n/g}'input|\
grep'ack-o'\'input.html | uniq-c
您是否尝试将输出管道化到sort-u
?@Jaypal我没有尝试使用bash。Regex(使用php)工作正常,但现在我需要找到唯一的实例。是否建议使用Regex替代方案?。感谢bash命令的完美。一行中有多个模板参数吗?那么,使用sed和简单的正则表达式是不可能的,我将使用perl one-liner。您的第一个命令完美地返回了唯一的变量列表,但我还需要在php中使用正则表达式版本,例如使用preg_match_all(),我接受你的第一个命令。Thanks@sakhunzai我会建议使用grep-oP
,但是mac上的grep
不支持基于perl
的正则表达式。
ack -o '\<\!--\{(.*?)\}--\>' input.html | uniq -c