我正在尝试在大约4K行的文本文件上运行一些正则表达式(grep)。我需要替换的主要部分如下所示:
1,"An Internet-Ready Resume",1,2,"","
我需要它看起来像这样:
<item>
<title>An Internet-Ready Resume</title>
<category>1</category>
<author>2</author>
<content>
到目前为止,这是我试图无济于事的原因:
[0-9]{1}\,\"*\"\,[0-9]\,[0-9]\,\"\"\,\"
答案 0 :(得分:1)
你应该从做little reading on regular expressions开始。网上有大量有用的资源。然后你会看到:
*
并不代表任何,但零次或多次 .
字符。 .*
表示任意次数(或任何)(<atom content>)
来设置这些原子,其中<atom content>
是一个正则表达式。要启动的提示:而不是\"*\"
尝试".*"
;查看reference。
另请注意,有关替换的部分取决于您使用的文本编辑器/工具。通常(a)(b)
(其中a,b是正则表达式原子)被x\1y\2z
替换的正则表达式将生成xaybz
。
答案 1 :(得分:0)
错误是\"*\"
部分。当您使用*
运算符时,您需要告诉它要重复的内容。如上所述,它将重复之前的引用字符。而不是你应该告诉它重复任何字符(.
),因此:\".*\"
第二个评论是你有很多不必要的反斜杠。事实上,就我所知,它们都不是必需的。没有它们你的正则表达式看起来像:
[0-9],".*",[0-9],[0-9],"","