如何在文本编辑器中使用GREP正则表达式进行正确的搜索/替换?

时间:2010-06-14 23:13:51

标签: regex grep

我正在尝试在大约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]\,\"\"\,\"

2 个答案:

答案 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],"","