2015-01-16 2 views
0

У меня есть приложение, где несколько ярлыков написаны какзаменить регулярное выражение возвышенного текста

ui-label-Display Not Masked 

Теперь я хочу, чтобы заменить его на

ui-label-Display_Not_Masked 

так я написал поиска регулярных выражений на

ui-label-(\w+)* 

Это ищет все выражения, но я не могу создать выражение для замены этого текста по мере необходимости. Я написал одну Regex

$1_ 

который заменяет

ui-label-Display Not Masked 

по

ui-label-Display Not_Masked 
+0

всегда будет три слова? –

+0

Нет. Это может быть один или несколько после ui-label. –

ответ

1

Это не может быть сделано с помощью одного регулярного выражения в одной итерации. У вас два варианта:

  1. Replace (ui-label-\w+) (обратите внимание на пробел в конце) с $1_ до тех пор, пока больше ничего не совпадает.
  2. Сделать регулярное выражение с большим количеством групп захвата, если необходимо, т. Е. (ui-label-\w+) (?:(\w+)(?: (\w+))?)? и заменить на $1_$2_$3.
+0

Второе регулярное выражение не может найти более трех строк в «ui-label-a b c d e f ....». Разве мы не можем сделать одно общее регулярное выражение, чтобы найти всю такую ​​строку и одну, чтобы заменить все строки? На самом деле моя проблема в том, что у меня есть одно веб-приложение, где у меня есть метки по формату ui-label-a b c .... И теперь мне нужно заменить их на ui-label-a_b_c .... Так что я немного unsure написать такое регулярное выражение. –

+0

@ShubhamParamhans: Как я уже говорил, вам нужно либо заменить одно место за раз, либо сделать соответствующее длинное регулярное выражение. –

+0

Как вы думаете, лучше ли написать одно возвышенное регулярное выражение, чтобы найти и заменить или один скрипт python, чтобы заменить соответствующий шаблон в файле? –

Смежные вопросы