git 提交 (SHA1) 的正则表达式是否在降价 link
Regex for git commit (SHA1) inside or not a markdown link
我想解析包含单词 Commits
(不区分大小写)后跟冒号、可能的 space 以及由三个点分隔的两个提交散列或包含在一个中的相同内容的行降价 link.
例如,对于以下行:
commits:56af25a...d3fead4
Commits: [56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4)
我想得到:
56af25a...d3fead4
[56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4)
所以我测试了基本表达式 /^commits:[ ]{0,}(.*)/i
,它可以工作,但我得到了任何东西 commits:
,而不仅仅是两次提交。
我也测试了 /^commits:[ ]*([\[.*?\]\(]?\b[0-9a-f]{5,40}\b\.\.\.\b[0-9a-f]{5,40}\b[\)]?)/i
但我只得到了两个提交,例如:
56af25a...d3fead4
[56af25a...d3fead4
是否可以用一个正则表达式实现我想要的,还是用两个不同的正则表达式更好?
我只想要 commits:
之后的值 if :
- 它是由三个点分隔的两个提交哈希值:
56af25a...d3fead4
- 同样的事情,但作为降价 link 文本:
[56af25a...d3fead4](anything in here)
前有后有则必失败。
所以通常以下字符串是错误的:
Commits: [56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4) Commits:
Commits: test[56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4)
Commits: test [56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4)
^commits:[ ]{0,}(?:([a-z0-9A-Z]+\.{3}[a-z0-9A-Z]+)|(\[[a-z0-9A-Z]+\.{3}[a-z0-9A-Z]+\]\(https?:\/\/\S+\)))$
只需尝试 this.See 演示。
我想解析包含单词 Commits
(不区分大小写)后跟冒号、可能的 space 以及由三个点分隔的两个提交散列或包含在一个中的相同内容的行降价 link.
例如,对于以下行:
commits:56af25a...d3fead4
Commits: [56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4)
我想得到:
56af25a...d3fead4
[56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4)
所以我测试了基本表达式 /^commits:[ ]{0,}(.*)/i
,它可以工作,但我得到了任何东西 commits:
,而不仅仅是两次提交。
我也测试了 /^commits:[ ]*([\[.*?\]\(]?\b[0-9a-f]{5,40}\b\.\.\.\b[0-9a-f]{5,40}\b[\)]?)/i
但我只得到了两个提交,例如:
56af25a...d3fead4
[56af25a...d3fead4
是否可以用一个正则表达式实现我想要的,还是用两个不同的正则表达式更好?
我只想要 commits:
之后的值 if :
- 它是由三个点分隔的两个提交哈希值:
56af25a...d3fead4
- 同样的事情,但作为降价 link 文本:
[56af25a...d3fead4](anything in here)
前有后有则必失败。 所以通常以下字符串是错误的:
Commits: [56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4) Commits:
Commits: test[56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4)
Commits: test [56af25a...d3fead4](https://github.com/Glimpse/Semantic-Release-Notes/compare/56af25a...d3fead4)
^commits:[ ]{0,}(?:([a-z0-9A-Z]+\.{3}[a-z0-9A-Z]+)|(\[[a-z0-9A-Z]+\.{3}[a-z0-9A-Z]+\]\(https?:\/\/\S+\)))$
只需尝试 this.See 演示。