使用正则表达式自定义汇编程序语法规则

时间:2018-02-13 20:15:00

标签: java regex

我在Java中为6502微处理器指令集编写自定义汇编程序,显然汇编程序的一个主要部分是检查汇编程序的语法是否有效,然后才能转换为字节形式。 / p>

到目前为止,我已经制定了以下规则,这些规则都需要针对装配程序的每一行进行检查

All instructions must be three letters long and match an instruction in the instruction table.

Branch labels cannot contain any characters aside from alphanumeric

Operands cannot contain symbols outside of "( ) $ # , + -"
Opening parentheses in operands must be closed. 
Operands can only contain one pair of parentheses
$ and # must be followed by numeric characters in operands.
Commas must exist between a value and a value OR a parenthesis and a value i.e. (xxx,yyy) or (xxx),yyy

我用Java编写汇编程序,因此我考虑使用正则表达式模式来检查上述规则的有效性。这是正则表达式可用于什么的东西吗?我过去使用过正则表达式,但通常只是单一检查而没有像这样广泛的。

我并没有要求任何人制定出可以用于这些规则的正则表达式模式(尽管如果有人可以,我真的很感激,因为我真的不知道如何做其中的一些),我只是想要要知道检查这些规则是否可以使用正则表达式。

1 个答案:

答案 0 :(得分:0)

正则表达式可以检查一个字符串是否包含3个字母,但是它不能告诉你它是否存在于表格中。

正则表达式可以检查字符串是否只包含字母数字字符。

正则表达式可以检查字符串是否只包含某些符号。

正则表达式可以计算左括号和右括号的数量,但不能告诉您每个开口是否具有匹配的结束。

也可以通过正则表达式检查最后三条规则。

请参阅类java.util.regex.Pattern.

例如,第一个规则的正则表达式为\p{Alnum}{3}