javascript - 删除字符不匹配的字符串开头
问题描述
说我有这个网址:
git+https://github.com/ORESoftware/npp.git
我想删除与“http”不匹配的第一个字符。我也想删除 .git,但不知道如何可靠地做到这一点。
所以我想得到这个字符串:
https://github.com/ORESoftware/npp
作为一个全面的侧面对话,不确定该网址与以下内容有何不同:
www.github.com/ORESoftware/npp
解决方案
你可以试试这个:
let s = 'git+https://github.com/ORESoftware/npp.git';
console.log(s.replace(/^.*?(http.*?)\.git$/, '$1'))
输出:
https://github.com/ORESoftware/npp
此正则表达式的工作方式如下:
^.*?
是从字符串开头到下一个匹配的元素的非贪婪匹配,在这种情况下是(http.*?)
捕获组。
(http.*?)
是一个捕获组,它捕获从http
下一场比赛到下一场比赛的所有内容(因为.*?
又是非贪婪的)
\.git$
匹配.git
字符串的尾随。
替换字符串$1
仅用捕获组的内容替换原始字符串的内容。在这种情况下,这是从http
直到最后一个字符的所有内容.git
。
推荐阅读
- path - 如何以正确的路径上传图像 - 图像:属性“图像”需要一个有效的路径名作为 akeneo 中的数据
- javascript - 锐利的图像旋转只工作一次
- c# - 属性的值应该使用方法更新还是在 getter 中确定?
- python - 如何检查字符串是否在$符号后包含数字字符,不包括熊猫中的空格
- javascript - Ajax POST 发送空值
- firebase - Firebase 和 busboy,我是否将整个文件保存在内存中,或者?
- java - 如何将IP地址解析为主机名?
- c++ - 遍历 C++ STL 队列
- go - Sqlboiler 定义关系
- php - 我在我的 wordpress 父主题中对模板文件进行了一些自定义更改。当主题更新时,我如何确保它们不会被覆盖?