Я пытаюсь сопоставить некоторые строки в текстовом файле с регулярным выражением, а затем изменить все места, где найден шаблон. Это похоже на поиск и замену, но я пытаюсь заменить измененной версией того, что было найдено (и я уверен, что у этого есть имя, но я недостаточно знаком с ним).Изменение совпадений регулярных выражений в заменах
Поэтому я ищу для строк, которые соответствуют [a-z]_[a-z]
(например, some_string
), и я хочу, чтобы заменить его, удалив подчеркивание и прописных буквы второго нижнего регистра слова, по существу верблюда кожухотрубного его (someString
).
Любые указатели на то, как это сделать (сложная часть, я не знаю, как это сделать даже для Google).
Редактировать
Я пытался упрощать вопрос немного, чтобы сделать его более универсальным, но я также пытаюсь сделать это только в том случае, если матч не происходит в кавычках. То есть, я не хочу сопоставлять символы подчеркивания в кавычках (так что здесь нет совпадения: "this_is_a_string"
... это должно оставаться как есть). Вероятно, я должен был включить это, когда я впервые сделал этот пост.
Вы хотите изучить обратные ссылки. Создайте два или более регулярных выражения, которые вместе совпадают с первым, а затем вы можете использовать обратную ссылку одного из них, чтобы изменить его. – Leeish
@jbrennan Я считаю, что делать это с родными строками будет проще, чем слова массива = indexOf ('-'). Split; слова [1] .charAt (1) .upperCase; words.join ^^^ psuedocode – raam86
@ raam86 Я подумал об этом, но у меня есть еще одно требование, при котором under_scores могут быть сопоставлены только в том случае, если они не в кавычках, поэтому регулярное выражение немного сложнее, чем показанное мной. – jbrennan