正则表达式允许字符串中的空格 - bash

时间:2016-02-19 08:54:47

标签: regex bash

我无法获得带空格的字符串来验证。它没有空格,但是当我在字符串中包含空格时它会失败。我疯狂地用Google搜索,但无法让它发挥作用。

if [[ $string =~ ^"[A-Za-z ]"$ ]]; then
    # true
else 
    # false
fi

我不确定我在这里失踪了什么......

2 个答案:

答案 0 :(得分:1)

使用变量存储正则表达式:

Person

然后将其用作:

re='^[A-Za-z ]+$'

如果您想要内联正则表达式,请使用:

[[ "string" =~ $re ]] && echo "matched" || echo "nope"
matched

[[ "string with spaces" =~ $re ]] && echo "matched" || echo "nope"
matched

或者使用[[ "string with spaces" =~ ^[A-Za-z\ ]+$ ]] && echo "matched" || echo "nope" matched 属性:

[[:blank:]]

答案 1 :(得分:-2)

我应该使用以下正则表达式,如果它总是空格而不是..

if [[ $string =~ ^"[A-Za-z ](\s)"$ ]]; then
    # true
else 
    # false
fi

干杯:)