用PHP中的正则表达式解析不同类型的格式


Parsing different types of formats with regular expressions in PHP

我需要根据一些特定的要求解析(拆分)数据库中的一些句子。这些句子可以有不同类型的格式,我80%的句子都有以下格式之一:

  1. COMPANY_NAME,CITY_NAME_1(街道地址,邮编CITY_NAME_2)。ANY_STRING
  2. COMPANY_NAME、CITY_NAME_1、STREET_ADDRESS、ZIP_CODE CITY_NAME_2。ANY_STRING
  3. COMPANY_NAME,CITY_NAME_1,STREET_ADDRESS,ZIP_CODE CITY_NAME_2,(ANY_STRING:ANY_STRING.).ANY_STRING
  4. COMPANY_NAME(ANY_STRING)、CITY_NAME_1、STREET_ADDRESS、ZIP_CODE CITY_NAME_2。ANY_STRING

在这里,我指定了规则:

  • COMPANY_NAME可以有空格、hyphons(-)和句点
  • COMPANY_NAME不能有逗号、分隔符
  • CITY_NAME_1和CITY_NAME_2可以有空格、斜线、分隔符
  • CITY_NAME_1和CITY_NAME_2不能有逗号
  • CITY_NAME_1和CITY_NAME_2在95%的情况下是相同的5%的病例不同
  • STREET_ADDRESS可以有任何内容(逗号、分隔符、任何特殊字符等)
  • ZIP_CODE对我来说是已知的(4、5或6位数字字符串)

我已经有了每个句子的邮政编码。我想创建一个正则表达式或函数,它将句子和邮政编码作为输入,并返回街道名称作为输出。

当然,我可以为上述每种方法创建不同的函数。但是,我怎么知道给定的句子适合哪种格式呢?用正则表达式可以知道这一点吗?

首先需要定义它是什么类型的字符串(如何分隔)。通过CCD_ 1。首先,对于这种情况,regexp似乎有点复杂。我们没有数据。

http://myregexp.com/-将帮助您编写regexp s.