从SRV查询中删除前导下划线

时间:2017-07-10 17:56:34

标签: java regex

鉴于来自SRV查询的域名,我想删除前导下划线但保留可能存在的任何内部下划线。域名通常如下所示:

_sipfederationtls._tcp.foo.com

我希望删除下划线:

sipfederationtls.tcp.foo.com

但如果有任何内部下划线:

_sipfederationtls._tcp.foo_bar.com

我希望保留它们:

sipfederationtls.tcp.foo_bar.com

我知道我需要使用replaceAll(),但我不了解正则表达式。基本上我需要一个表示下划线的正则表达式,后跟一些字符,以句点结束。

1 个答案:

答案 0 :(得分:0)

如果必须使用正则表达式,则可以找到任何不带字符字符的下划线实例。为此,您将使用负面的lookbehind。因为句点不是单词字符,所以下面的表达式只匹配字符串“_sipfederationtls._tcp.foo_bar.com”中的“_sipfederationtls”和“_tcp”

(?<!\w)_\w