Java 正则表达式:以“-”开头的多个定界符

Java regex: Multiple delimiters preceded by "-"

删除主机网络名称中以“-"hyphen, so that if there are other combinations with "-”开头的特定分隔符的后缀,应将其作为网络名称的一部分。

几个例子:

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 ##

分隔符只有'nic'、'a'。其他“-”&字符的组合请保持原样。

如何使用 java 正则表达式实现上述目标?

如果可以的话,请推荐单线...

您可以使用 String#replaceAll 方法执行此操作:

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

正则表达式 -(nic|adm) 匹配后跟 nicadm 的连字符。

\b 用于单词边界,以确保我们不会匹配不需要的文本,例如 abc.

您可以在此组中添加更多要删除的后缀。