Как правильно выполнить поиск / замену с помощью регулярных выражений GREP в текстовом редакторе? - PullRequest
0 голосов
/ 15 июня 2010

Я пытаюсь запустить некоторые регулярные выражения (grep) для текстового файла размером около 4K строк.Основная часть, которую мне нужно заменить, выглядит так:

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 ]

1 голос
/ 15 июня 2010

Вы должны начать с небольшого чтения регулярных выражений .Есть много полезных ресурсов в Интернете.Тогда вы увидите, что:

  • вам не нужно избегать всего (например, запятых или кавычек)
  • звездочка * не означает что-либо , но ноль или более раз
  • любой символ является символом ...* означает любой символ любое количество раз (или что-нибудь )
  • , если вам нужно сделать замены там, где вам нужны атомы того, что вы ищете, вынужно установить эти атомы, используя (<atom content>), где <atom content> - это регулярное выражение.

Совет для начала: вместо \"*\" try ".*";Проверьте ссылку .

Также обратите внимание, что часть, касающаяся замены, будет зависеть от используемого текстового редактора / инструмента.Обычно регулярное выражение, такое как (a)(b) (где a, b - атомы регулярного выражения), заменяемое на x\1y\2z, дает xaybz.

0 голосов
/ 15 июня 2010

Ошибка - часть \"*\". Когда вы используете оператор *, вы должны сказать ему, что следует повторить. Как написано, это будет повторять предыдущий символ кавычки. Вместо этого вы должны сказать ему повторить любой символ (.), таким образом: \".*\"

Второстепенный комментарий - у вас много ненужных обратных косых черт. На самом деле, ни один из них не нужен, насколько я могу судить. Без них ваше регулярное выражение выглядит так:

[0-9],".*",[0-9],[0-9],"","
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...