我有一個小問題,我實在無法理解:猛砸正則表達式的疑難雜症
bash -c 'if [[ "hello" =~ ^[a-zA-Z0-9]\{1,\}\\.$ ]] ; then echo "OK" ; else echo "KO" ; fi
我想這應該給我KO,這讓我好...... 我想與匹配的東西至少1個字符,並以點結束...
我終於發現,它與bash的版本4.1.5,而不是與版本3.2.25
我應該如何使用這個版本進行?
編輯:
我發現一個可行的解決辦法,但我不知道爲什麼我不得不把括號中的轉義點:
bash -c 'if [[ "hello" =~ ^[a-zA-Z0-9]{1,}[\.]$ ]] ; then echo "OK" ; else echo "KO" ; fi'
感謝您的回答,實際上我確實逃過了這一點,但它沒有顯示在這裏(現在用雙反斜槓糾正......)另外,bash regexp不接受+作爲修飾符... –
@ Lapin-Blanc現在的工作方式:http://i54.tinypic.com/2l9s561.png(使用問題的複製粘貼) –
我猜你嘗試過更新版本的bash,我在Centos 5.6和... http://i53.tinypic.com/21jd2ew.png :-) –