我有.txt格式的字典,如下所示:
term 1
definition 1
definition 2
term 2
definition 1
definition 2
definition 3
etc.
在定义之前总会有一个标签,基本上就是这样:
term 1
[tab]definition 1
[tab]definition 2
etc.
现在我需要用<term>
标签包装每个术语和它的定义,即:
<term>
term 1
definition 1
definition 2
</term>
我试图使用正则表达式来查找带有它的定义的术语,但没有运气。你能帮帮我吗?
感谢您的任何建议!
答案 0 :(得分:0)
试试这个正则表达式:
(^|\n).+(\n[ \t]+.+)*
假设^
标记字符串的开头,\n
是换行符,.
与换行符不匹配。
答案 1 :(得分:0)
假设实现
/.../m
)\A
表示行的开头这应匹配一个“术语”:
\A[^\t][^\n]+\n(\t[^\n]+\n)+
答案 2 :(得分:0)
将一行与一个前导非空白字符匹配,后跟一行或多行以及前导TAB:
$ perl -0077 -pe 's/^(\S.+\n(^\t.+\n)+)/<term>\n$1<\/term>\n/mg' dict <term> term 1 definition 1 definition 2 </term> <term> term 2 definition 1 definition 2 definition 3 </term>