首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git跨平台正则表达式子字符串匹配

git跨平台正则表达式子字符串匹配
EN

Stack Overflow用户
提问于 2021-10-15 10:37:40
回答 1查看 53关注 0票数 0

对于另一个模式匹配问题,我很抱歉,但我正在努力寻找一个可以在git钩子中执行正则表达式的工具。它需要在Windows、Mac和Linux上运行。

此gnu grep适用于Windows和Linux,但不适用于Mac (因为bsd)

代码语言:javascript
复制
echo "feature/EOPP-234-foo" | grep -Po -e '[A-Z]{4}-\d{1,5}'

这对Mac和Linux有效,但对windows不起作用(因为<git>\usr\bin\egrep似乎不起作用)

代码语言:javascript
复制
echo "feature/EOPP-234-foo" | egrep -o '[A-Z]{4}-\d{1,5}'

sed可能是最常见的工具,但如果我能让它匹配:

代码语言:javascript
复制
echo "feature/EOPP-234-foo" | sed -n 's/^.*\([A-Z]{4}\-\d{1,5}\).*$/\1/p'

我甚至尝试过bash匹配,但没有成功

代码语言:javascript
复制
[[ "feature/EOPP-234-foo" =~ ([A-Z]{4}-\d{1,5}) ]] && echo ${BASH_REMATCH[1]}

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-15 10:50:18

当您需要使POSIX工具在Windows上运行时,您需要记住在命令两边使用双引号,而不是单引号。

此外,您还可以在所有这些环境中使用通用的POSIX ERE兼容正则表达式。这意味着\d必须替换为[0-9][[:digit:]],因为\d是一个仅符合PCRE的构造。

您可以使用

代码语言:javascript
复制
grep -Eo "[A-Z]{4}-[0-9]{1,5}"
grep -Eo "[A-Z]{4}-[[:digit:]]{1,5}"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69583434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档