regex - 提取最后 2 个字段,无论大小
问题描述
我一直在尝试获取以下字符串的最后“两个字段”:
cc-api-data.bar.bar
external-atl3-1.xx.fbcdn.net
fbcdn.net
对于前 2 个字符串,我只想获得“bar.bar”和“fbcdn.net”。但是,对于最后一个字符串,我希望它匹配整个内容,因为它拥有我想要的一切。
我非常有信心我可以在一个简单的脚本中做到这一点,但在这种情况下我正在尝试使用正则表达式。我只能在最后一个字符串上得到字符串的最后一部分,而不是全部。而且我无法告诉正则表达式采用哪个字段。我真的只想要最后两个字段,不管有多少分隔符。
任何建议,甚至有可能
解决方案
我的猜测是,我们可能想要一个具有$
类似于以下锚点的表达式:
([^.]*)\.([^.]*)$
朝向我们琴弦的右侧。
请参阅演示以获取更多说明
我想知道正则表达式如何知道只得到最后一个时期之前的部分。是不是因为它抓住了任何不是“。”的字符 因为它在行尾?为什么它不能抓住第一个八位字节?
好问题,也有点难以解释,通过播放这个演示,我们可以观看比赛前的许多步骤:
它会逐个字符地开始并针对我们的表达式进行测试,它会通过表达式中的规则,但是在早期的 chars 或 octet中,一旦它到达$
结束锚点,那些早期的 chars 或 octet就会失败,因为我们的最后一个结束的字符串规则已被打破。
推荐阅读
- visual-studio-2019 - 如何在 Visual Studio 编辑器窗口中隐藏或显示自定义边距
- ios - Safari iOS 未在输入字段中呈现₽符号
- api - 将集合和环境导入邮递员的 API
- scala - 如何实现 Seq.grouped(size:Int): Seq[Seq[A]] for Dataset in Spark
- javascript - 如何通过javascript添加两个变量
- javascript - 无法读取 nodejs 中未定义的属性“修剪”
- javascript - 如果我已经有服务器端代码,如何发送 onClick JavaScript 电子邮件?
- python - python bs4从按钮类中的属性中提取
- laravel - 多个连接表上的 Laravel Eloquent 'withCount' 函数
- javascript - React-Native Webview 可以使用音频播放器吗?