有人可以帮我解码这个RegExp吗?
function __get_dir {
DIR=$(basename `pwd`)
if [[ $DIR == "desiredDir" ]]
then
LOGO=" "
else
LOGO=""
fi
}
PROMPT_COMMAND='__get_dir'
PS1="\W \u\[\033[0;33m\]\$(parse_git_branch_and_add_brackets) \$LOGO\[\033[0m\]\$ "
答案 0 :(得分:1)
//
只是regexp的占位符,^(.+)\s{1}\((.*)\)$
仍为
^
表示字符串的开头,$
是字符串的结尾,(.+)\s{1}\((.*)\)
仍为
(.+)
是第一组项目,它匹配任何字符(如果没有字符+
将失败,因为它意味着“给我一个或多个字符”),\s{1}\((.*)\)
仍然存在
\s{1}
表示“只给我一个空格”,\((.*)\)
仍然存在
\(
和\)
表示您是编码括号以使用其文字形式,因为仅使用()
作为匹配组,(.*)
离开
(.*)
与(.+)
相同,但此处也会有零个字符匹配,因为*
表示“给我任何东西,甚至没有”
例如。 Patryk (patnowak)
将通过,Pat Nowak
将不会
答案 1 :(得分:0)
/ ^(+)\ S {1}(())$ /
会匹配如下:Hello(1id93;)
一步一步走,因为这是正则表达式的作用:
/ - 打开正则表达式
^ - 在开始时匹配
( - 打开一个匹配的组,将返回:$ 1
。+ - 匹配任何字符一次或多次
) - 关闭匹配组
\ s - 匹配空白区域
{1} - 正是其中之一
( - 匹配a(反斜杠确保它匹配(字符
(。) - 再次匹配0或多次,返回匹配组$ 2
) - 匹配a)
$ - 标志着正则表达式的结束。
/ - 关闭正则表达式