正则表达理解

时间:2016-10-26 12:02:41

标签: regex

有人可以帮我解码这个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\]\$ "

2 个答案:

答案 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) $ - 标志着正则表达式的结束。 / - 关闭正则表达式