我一直在试图制定,检查针对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