我一直在試圖制定,檢查針對MIPS指令的表情像這樣的:正則表達式bash腳本過濾MIPS指令
lw $t1 70000($s0)
我對lw
和$t1
部分則表達式,但我卡在70000($s0)
部分。
的($s0)
前的數量不能超過−32768
或32767
,所述$
具有在那裏只有一次,s
部分必須是一個s
或t
和只出現一次,之後數只能從0-7
爲s
範圍和0-9
爲t
。
任何幫助,將不勝感激。
這裏是我對$s0
部分從我的腳本的另一部分的表達:
^(\$((s?[0-7])|(t?([0-9]))))$
if語句我在使用這種檢查,如果輸入的文本是有效的,它主要是爲前綴數字部分我堅持。
感謝
EDIT1:我已成功地使用offset=${w3%(*}
第一(
之前將字符串截斷到($s0)
值分開。我的腳本不會處理任何值,例如(
之前的值。
我現在需要檢查這個值是小於−32768
還是大於32767
。任何想法如何我可以將其歸檔?
EDIT2:我已經設法解決了我的問題,並將解決方案作爲答案發布,這要歸功於所有回覆。
範圍檢查是否有任何理由需要在正則表達式內?對數字使用簡單的通用表達式會更容易,然後通過引用捕獲組來檢查特定值。 –
我想這會更容易,但我是新來的bash和正則表達式不是我的強項之一,所以我不知道如何單獨檢查數字部分。你能舉個例子嗎? – HarmanU