[英]Regex catch multiple match look behind look ahead
这是来自此ruby 的扩展问题,使用正则表达式在两个字符串之间查找内容
所以我想捕获多个这个用户名
文本(1 行)
starting-middle+31313131313@mysite.com starting-middle+4141414141@mysite.com
结果
["31313131313", "4141414141"]
我试过这个(?<=\+).*(?=@)
但它会采用最后一个前瞻字符,所以结果类似于31313131313@mysite.com starting-middle+41414141
您可以匹配+
并使用\K
忘记到目前为止匹配的内容,而不是使用后视。
然后使用否定字符 class来匹配除@
或空白字符之外的任何字符,并使用正向先行在右侧断言@
。
\+\K[^\s@]+(?=@)
解释
\+
匹配+
\K
清除匹配缓冲区[^\s@]+
匹配除空白字符或@
以外的任何字符的 1+ 次(或使用\d+
仅匹配数字)(?=@)
正向前瞻,直接在当前 position 右边断言@
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.