Требуется больше советов по настройке регулярных выражений - PullRequest
0 голосов
/ 29 сентября 2011

Я помогаю добавлять разделители в большой файл ссылок благодаря помощи SO.Почти там сейчас.У меня есть регулярное выражение, полученное от SO-члена, которое позволило мне добавить «|»между автором и годом.Я знаю, нужно добавить "|"между статьей и публикацией.Правило, которое я использую, заключается в том, что я хочу добавить "|"после последнего периода (точка), который предшествует ":" в названии публикации.Я попытался отредактировать свой позитивный взгляд на это, но, похоже, это не сработало.Буду признателен за ваш вклад в это, как всегда.Заранее спасибо.

На самом деле, мне, вероятно, даже не нужно указывать после 3 "|"править.Главное было бы соответствовать последнему периоду, который предшествует ":".Было бы это правильно.Несмотря на это, мое регулярное выражение, похоже, не работает.

^((?:[^|]+\|){3}.*?\.)(?=\:)

122| Ryan, T.N. |2002. |Some article name here. Publication name 2: 101-105.

1 Ответ

0 голосов
/ 29 сентября 2011

Хорошо, 2 проблемы:

  • Вы забыли, что между точкой и двоеточием есть предвкушение! :)
  • У вас не было жадного совпадения до периода, поэтому он совпадал с первым периодом вместо последнего

Попробуйте:

'^((?:[^|]+\|){3}.*\.)(?=[^:]*?\:)'

Видите разницу? (Удалено ?, добавлено [^:]*)

...