我正在使用下面的正則表達式匹配C整數聲明沒有初始化。整數可能是無符號:爲什麼此正則表達式不適用於匹配C整數聲明?
^(unsigned[[:space:]]+|^$)int[[:space:]]+[a-zA-Z0-9_]+;$
第一部分匹配unsigned
後跟一個數量的空格,或沒有。第二部分匹配int
後跟空格,加上一個變量名和一個分號。
不幸的是,這似乎不匹配不具有它unsigned
任何整數聲明。我究竟做錯了什麼? ^$
(...|...)
模式是否符合我的預期(匹配空字符串)?谷歌和我的正則表達式手冊沒有幫助。
'^ $'匹配整行空行,因爲'$'匹配行的末尾。如果你想使'unsigned'可選,把'?'放在那個組之後。 – Barmar
但是,如果我使用'(unsigned)?',它顯然也會與'garbage'匹配...... – user54609
如果您將它固定在行首,則不行。 – Barmar