我需要匹配类似于"?xml 'this is what I want'?"的内容,并获取单引号之间的字符串。
我尝试了以下方法:
if [[ '?xml abc def?' =~ \?xml(.*)\? ]]; then
echo ok;
echo "${BASH_REMATCH[1]}";
fi
结果:
ok
abc def
我只想要“abc def”。所以我尝试:
if [[ '?xml abc def?' =~ \?xml[:blank:]+(.*)\? ]]; then #nothing matched
if [[ '?xml abc def?' =~ \?xml\[:blank:\]+(.*)\? ]]; then #nothing matched
if [[ '?xml abc def?' =~ \?xml\s+(.*)\? ]]; then #nothing matched
我该如何解决这个问题?帮帮我!
\s*
。我不确定PCRE是否已启用。否则,:blank:
需要用双方括号[[:blank:]]
括起来。 - hjpotter92