02.08.2010, 13:59
|
Аспирант
|
|
Регистрация: 11.12.2008
Сообщений: 44
|
|
Вложенность в ругулярных выражениях
Всем привет.
Помогите пожалуйста сделать вложенную замену в регулярном выражении в исходных данных вида "Hello "world", yahoo!", в «Hello «world», yahoo!»
Сделал замену без вложенностей так:
function replace(node) {
var decs = node[0].text;
var quote = /"([^"]*)"/g;
decs = decs.replace(quote, '«$1»');
return decs;
}
Спасибо.
|
|
02.08.2010, 14:33
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
А как скрипт должен догадаться, так нужно заменять «Hello «world», yahoo!» или так «Hello »world«, yahoo!»? Кавычки-то не отличаются друг от друга.
|
|
02.08.2010, 14:51
|
Аспирант
|
|
Регистрация: 11.12.2008
Сообщений: 44
|
|
Сообщение от Kolyaj
|
А как скрипт должен догадаться, так нужно заменять «Hello «world», yahoo!» или так «Hello »world«, yahoo!»? Кавычки-то не отличаются друг от друга.
|
Спасибо за замечание, упустил из виду, вложенные кавычки должны быть вида: «Hello „world“, yahoo!»
|
|
02.08.2010, 14:53
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Нет, вы не поняли. Вот встретили вы в строке кавычку ". На что её нужно заменить: «, », „ или “?
|
|
02.08.2010, 15:02
|
Аспирант
|
|
Регистрация: 11.12.2008
Сообщений: 44
|
|
Сообщение от Kolyaj
|
Нет, вы не поняли. Вот встретили вы в строке кавычку ". На что её нужно заменить: «, », „ или “?
|
Хорошо, поясню так.
Допустим, в предложении у нас нет вложенных кавычек:
В "Интерросе" это подтвердили, хотя в марте—апреле компания говорила о такой возможности.
Но могут быть предложения, где имеют быть место вложенные кавычки, пример:
"Любой buy-back, когда ты ("Интеррос".— "Ъ") управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций".
Мне необходимо заменить кавычки вида "" на типографские — «» в случае если нет вложенных кавычек, т. е. так:
В «Интерросе» это подтвердили, хотя в марте—апреле компания говорила о такой возможности.
и так, если есть вложенные кавычки:
«Любой buy-back, когда ты („Интеррос“.— „Ъ“) управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций».
Стало понятней?
|
|
02.08.2010, 15:20
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от artwalek
|
Но могут быть предложения, где имеют быть место вложенные кавычки, пример:
"Любой buy-back, когда ты ("Интеррос".— "Ъ") управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций".
|
Вы упорно не хотите формализовать задачу. Это вам, человеку, понятно, что тут вложенные кавычки. А как глупая машина должна понять, что здесь именно вложенные кавычки, а не несколько блоков текста, заключённых в кавычки, идущие друг за другом. В этом примере, например, в кавычках находится три блока текста
Любой buy-back, когда ты (
.—
) управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций
Как эту ситуацию отличить от вложенных кавычек?
|
|
02.08.2010, 15:35
|
Аспирант
|
|
Регистрация: 11.12.2008
Сообщений: 44
|
|
Сообщение от Kolyaj
|
Вы упорно не хотите формализовать задачу. Это вам, человеку, понятно, что тут вложенные кавычки. А как глупая машина должна понять, что здесь именно вложенные кавычки, а не несколько блоков текста, заключённых в кавычки, идущие друг за другом. В этом примере, например, в кавычках находится три блока текста
Любой buy-back, когда ты (
.—
) управляешь менеджментом и регистратором, это всегда непропорциональная покупка акций
Как эту ситуацию отличить от вложенных кавычек?
|
Думаю формализовать так: делать либо вложенную замену, либо двойной проход строки. Второй вариант мне кажется предпочтительней: сперва менять все на левую кавычку, а а на втором менять каждую вторую.
|
|
02.08.2010, 15:42
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от artwalek
|
Второй вариант мне кажется предпочтительней: сперва менять все на левую кавычку, а а на втором менять каждую вторую.
|
Так никогда не будет вложенных кавычек. Вы всё-таки не понимаете всего масштаба проблемы. Тут, например, какие кавычки, вложенные или нет?
"aaa"bbb"ccc"
Может вам лучше типограф попробовать заюзать?
|
|
02.08.2010, 15:47
|
Аспирант
|
|
Регистрация: 11.12.2008
Сообщений: 44
|
|
Сообщение от Kolyaj
|
Так никогда не будет вложенных кавычек. Вы всё-таки не понимаете всего масштаба проблемы. Тут, например, какие кавычки, вложенные или нет?
"aaa"bbb"ccc"
Может вам лучше типограф попробовать заюзать?
|
Возможно и не осознаю, для меня это пока в новинку.
"aaa"bbb"ccc" — я думаю вложенные.
Типограф Лебедевский не подходит, нужно именно на JS.
|
|
02.08.2010, 15:51
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от artwalek
|
"aaa"bbb"ccc" — я думаю вложенные.
|
Почему?
Сообщение от artwalek
|
Типограф Лебедевский не подходит, нужно именно на JS.
|
Можно бэкенд на сервере сделать, и подгружать результаты JS-ом.
|
|
|
|