我试图在字符串的两个字符@
和:
之间提取一个字符串:
test23@server:/var/
所以,当我尝试做类似的事情,@([^.]*):
甚至\@(\S+):
我得到@server:
我只想要删除@
和:
所以我只能得到server
这个词。请帮忙!
你只需要使用你刚刚构建的capturing group的引用者,或者你可以使用\K
令牌。你不需要逃脱@
角色和[^.]*
意味着贪婪地匹配除了文字点.
之外的所有东西,最好更改为[^:]+
:
@\K[^:]+
或更严格地说:
@\K[^:]++(?=:)
试试(?<=@).*(?=:)
。我正在使用积极的外观和积极的前瞻。
它将匹配以(但不包括)@
字符开头并以(不包括):
结尾的任何内容
有关详细信息,请参阅https://www.regular-expressions.info/lookaround.html