| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Замена скобок, содержащих определённые выражения |
| Автор: GlebLee 12.8.2011, 17:47 | ||
| Здравствуйте! Я только начал разбираться с JavaScript и регулярными выражениями и пока не могу сообразить, как решить такую задачу: нужно удалить кавычки из набора символов "_} и {_" , если между "_} и {_" есть символы "гов" или "сказ", но нет символов "!", ".", "?" . Вначале я написал что-то вроде:
Но не получилось. Тогда стал пытаться поймать в регулярное выражение только "_} , если между ним и {_" есть символы "гов" или "сказ", но нет символов "!", ".", "?" заключив *.[^.?!]*(?:гов|сказ)[^.?!]*.\{_" в "вперёд смотрящее" (?=). Но такое выражение вообще не стало компилироваться. Подскажите, пожалуйста, как решается такая задача! |
| Автор: Evghenusi 12.8.2011, 20:43 |
| а можешь показать имеющийся текст и тот текст который ты хочешь в результате получить? |
| Автор: GlebLee 12.8.2011, 21:28 | ||||
Чтобы, например,
было преобразовано в
|
| Автор: Evghenusi 12.8.2011, 22:27 | ||||||
Добавлено через 2 минуты и 39 секунд хммммм, GlebLee, а твоя регулярка работает,
Добавлено через 6 минут и 55 секунд
|
| Автор: GlebLee 12.8.2011, 23:35 |
| Спасибо, оно работает! Но поясните, пожалуйста, что говорит второй аргумент метода .replace : "$1"? |
| Автор: Evghenusi 12.8.2011, 23:48 |
| вставляет текст из первой подмаски (тут подробнее http://javascript.ru/String/replace) Добавлено через 9 минут и 16 секунд подмаска это то что заключено в круглые скобки (но после открывающей не должно быть ?:), в данном случае регулярка ищет текст который находится между "_} и {_", но кавычки находятся вне круглых скобок поэтому не попадают в подмаску {_"Нарече"_}, говорит, {_"собрания вод моря"_}. |