我有一个与此相似的文本文件:
Reference: 10001
Title: This is a text file
Description: A text file containing some simple strings
<0x0c>
Reference: 10002
Title: This is an xml file
Description: An xml file containing some generic data
<0x0c>
基本上,我看到类似<word>:
的模式,我想在"
之前和之后插入<word>
,然后id喜欢在值之前和之后插入"
然后是,
,如下所示:
"Reference" : "10001",
到目前为止,我可以使用以下正则表达式获得整行内容:
^.*(Reference:|Title:).*$
但是我想知道是否有更好的方法来只选择我需要的文本,然后进行所需的转换。
答案 0 :(得分:4)
如果您不想只匹配文本而只匹配整行,则可以使用3个捕获组并利用单词边界\b
:
\b(Reference|Title)(:\s*)(\d+)\b
\b(Reference|Title)
单词边界,在组1中捕获“引用”或“标题” (:\s*)
在第2组中捕获一个冒号和0+个空格字符(\d+)\b
捕获第3组1+位数字,后跟一个单词边界在替换中,使用3个捕获组并用双引号将第一个和第三个括起来:
"$1"$2"$3"