0

我需要根据某些特定要求解析(拆分)我的数据库中的一些句子。这些句子可以有不同类型的格式,我 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

在这里,我已经指定了规则:

  • COMPANY_NAME 可以包含空格、连字符 (-)、点。
  • 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 位数字字符串)。

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

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

4

1 回答 1

0

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

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

于 2012-07-28T08:31:08.663 回答