我刚刚问了这个关于使用正则表达式来允许 -90.0 和 +90.0 之间的数字的问题。我得到了一些关于如何实现正则表达式的答案,但大多数答案还提到,如果不使用正则表达式会更好地处理,或者使用正则表达式会是矫枉过正。那么您如何决定何时使用正则表达式以及何时不使用正则表达式。有你可以遵循的检查清单吗?
正则表达式是用于基于字符的测试的文本处理工具。更正式地说,正则表达式擅长处理正则语言,但几乎不擅长其他任何事情。
在实践中,这意味着正则表达式不太适合需要在超出字符级别的文本中发现意义(语义)的任务。这将需要一个成熟的解析器。
在您的特定情况下:识别文本中的数字是正则表达式擅长的练习(可以使用正则语言简单地描述十进制数)。这适用于角色级别。
但是对需要了解其数值(即语义)的数字进行更高级的操作需要解释。正则表达式在这方面很糟糕。因此,在文本中查找数字很容易。在文本中查找大于 11 但小于 1004(或可被 3 整除)的数字很难:它需要识别数字的含义。