我刚刚提出了这个问题,关于如何使用正则表达式允许介于-90.0到+90.0之间的数字。我得到了一些实现正则表达式的答案,但大多数答案也提到,最好不要使用正则表达式或使用正则表达式会过度解决。那么,何时使用正则表达式,何时不使用正则表达式?是否有一个可遵循的检查清单?
我刚刚提出了这个问题,关于如何使用正则表达式允许介于-90.0到+90.0之间的数字。我得到了一些实现正则表达式的答案,但大多数答案也提到,最好不要使用正则表达式或使用正则表达式会过度解决。那么,何时使用正则表达式,何时不使用正则表达式?是否有一个可遵循的检查清单?
正则表达式是一种用于处理文本的工具,用于基于字符的测试。更正式地说,正则表达式适用于处理正则语言,但在处理其他任何东西时都不太适用。
实际上,这意味着正则表达式不适合需要在超出字符级别的文本中发现意义(语义)的任务。这将需要一个成熟的解析器。
在您的特定情况下:识别文本中的数字是正则表达式擅长的练习(十进制数可以轻松地用正则语言描述)。这适用于字符级别。
但是,做更高级的需要了解其数值(即其语义)的数字操作需要解释。 正则表达式不擅长此类操作。 因此,在文本中查找数字很容易。 在文本中查找大于11但小于1004的数字(或可被3整除的数字)很难:这需要识别数字的含义。
RegEx的基本用例:
您需要“键值对” - 键和值都嵌入在其他嘈杂的文本中 - 否则无法访问或隔离。
您需要通过循环遍历多个文档来自动提取这些值。
在解析文本时,可能会发现键值对的数量和组合。