2015-01-24 3 views
0

Для рефакторинга некоторых достаточно больших классов (в Eclipse используйте поиск и замену регулярным выражением), мне нужно заменить каждый массив на один элемент элементом. Код выглядит примерно так:Single Element Regex

Opcodes = { IF_FCMPEQ } 

, и я хочу, чтобы заменить его следующим образом:

Opcode = IF_FCMPEQ 

Мои регулярные выражения в настоящее время выглядит следующим образом: Opcodes\ =\ \{ [???] \}, но я не знаю, что поставить между (экранированные) фигурные скобки. Текст между скобками во всех случаях представляет собой один идентификатор.

ответ

2

Найти Что:

(Opcodes =)\{ (\w+) \} 

\w+ соответствует одному или более символов слова.

Заменить:

\1\2 

DEMO

Если вы хотите в конечном итоге вместо Opcodes затем использовать это только Opcode,

Найти:

Opcodes = \{ (\w+) \} 

Заменить С:

Opcode = \1 
+0

'\ 1 \ 2' не заменил' Opcodes' на 'Opcode', но я понял, что' Opcode = \ 2' выполняет задание. Спасибо, в любом случае. – Clashsoft

+0

О, да, я этого не замечал. –

0

ли (.+) или (\w+) работу для этого рассматриваемого случая.

1

Вы можете положить \w+, что означает «один или несколько символов слова».

Java определяет «словарные символы» как [a-zA-Z_0-9], что и позволяет использовать в Java-идентификаторах.