正则表达式:获取两个字符之间的字符串

时间:2018-03-01 22:44:47

标签: regex perl

我正在尝试在字符串@:的两个字符之间提取字符串:

test23@server:/var/

所以,当我尝试做类似的事情时, @([^.]*): 甚至 \@(\S+): 我得到@server:

我只想删除@:,这样我就可以得到server这个词。请帮忙!

2 个答案:

答案 0 :(得分:1)

您只需要使用您刚刚构建的capturing group推荐人,或者您可以使用\K令牌。您无需转义@字符,[^.]*表示贪婪地匹配除了字面.之外的所有内容,最好将其更改为[^:]+

@\K[^:]+

或更严格:

@\K[^:]++(?=:)

答案 1 :(得分:0)

试试(?<=@).*(?=:)。我使用积极的外观和积极的前瞻。

它将匹配以({排除)@字符开头并以(不包括):结尾的任何内容

有关详细信息,请参阅https://www.regular-expressions.info/lookaround.html

请参阅https://regex101.com/r/jIIB9Q/1

上的演示