为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式将 giturl 与可选文件名匹配

正则表达式将 giturl 与可选文件名匹配

牛魔王的故事 2022-09-02 21:30:35
我需要从github gist url获取两个部分(用户名/gistid和文件名)。索法尔我得到了这个:  const gisturl = "https://gist.github.com/vanaf1979/329abed564c2ba10eda29a53b399ac69#file-parse-wp-rest-api-1-parse-js";  const myRegexp = /\.com\/+(.*)?#file-(.*)/gi;  const matches = myRegexp.exec(gisturl);  console.log(matches);惠特克给我0: ".com/vanaf1979/329abed564c2ba10eda29a53b399ac69#file-parse-wp-rest-api-1-parse-js"1: "vanaf1979/329abed564c2ba10eda29a53b399ac69"2: "parse-wp-rest-api-1-parse-js"到目前为止,一切都很好,除了文件名(#file-parse-wp-rest-api-1-parse-js)是可选的,如果我从字符串中删除它,正则表达式doest将不再匹配。所以我需要正则表达式来匹配有或没有文件名的两种情况。任何帮助将不胜感激。
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

您可以将第一部分更改为使用否定字符类,而不是匹配除[^#]+#

然后,您可以将第二个部件设置为可选,并保留其后部件的捕获组file-

请注意,您可以省略正斜杠后面的加号\/+

\.com\/([^#]+)(?:#file-(.*))?

正则表达式演示


查看完整回答
反对 回复 2022-09-02
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信