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

时间:2012-07-28 08:11:18

标签: php regex parsing

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

  1. COMPANY_NAME,CITY_NAME_1(STREET_ADDRESS,ZIP_CODE 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
  5. 在这里,我已经指定了规则:

    • 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可以包含任何内容(逗号,简介,任何特殊内容) charcter等。)
    • ZIP_CODE已为我所知(4或5或6位数字字符串)。

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

    对于cource,我可以不同地为每个上述方法创建函数。但是,我怎么知道给定的句子适合哪种格式?是否可以通过正则表达式来了解这一点?

1 个答案:

答案 0 :(得分:0)

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

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