2015-10-20 3 views
-6

Удалите суффикс от сетевого имени хостов на определенных разделителях, которым предшествует дефис «-», так что если есть другие комбинации с «-», это должно быть принято как часть имя сети.Java regex: Множественные разделители, которым предшествует «-»

Несколько примеров:

abcd-new  --> abcd-new ## Stays same ## 
efgh-nic  --> efgh  ## delimiter is '-nic' ## 
mnop-ilo-a --> mnop-ilo ## delimiter is '-a' ## 
xyz-a01  --> xyz-a01 ## Stays same ## 
vm-1-ad-nic --> vm-1-ad ## delimiter is '-nic' ## 
vm-lab-nic1 --> vm-lab-nic1 ## Stays same ## 

В ограничивающие символы 'НИК', 'а' только. Другие комбинации символов «-» & должны быть сохранены.

Как достичь вышеуказанного с помощью java regex?

Если возможно, пожалуйста, предложите один лайнер ...

+0

Как вы могли сделать это с помощью многострочного регулярного выражения? –

+0

Это не похоже на расщепление. Это похоже на удаление суффиксов. Возможно, вы должны предоставить свой код в качестве надлежащего контекста. – RealSkeptic

+1

Если возможно, пожалуйста, покажите свою попытку – anubhava

ответ

0

Вы можете сделать это с помощью метода String#replaceAll:

str = str.replaceAll("-(nic|a)\\b", ""); 

Regex -(nic|adm) соответствует дефис с последующим nic или adm.

\\b предназначено для печати на границах слов, чтобы убедиться, что мы не сопоставляем нежелательный текст, например abc.

В эту группу можно добавить дополнительные суффиксы, которые необходимо удалить.

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