我需要根据某些特定要求解析(拆分)我的数据库中的一些句子。这些句子可以有不同类型的格式,我 80% 的句子有以下格式之一:
- COMPANY_NAME,CITY_NAME_1(STREET_ADDRESS,ZIP_CODE CITY_NAME_2)。ANY_STRING
- COMPANY_NAME、CITY_NAME_1、STREET_ADDRESS、ZIP_CODE CITY_NAME_2。ANY_STRING
- COMPANY_NAME,CITY_NAME_1,STREET_ADDRESS,ZIP_CODE CITY_NAME_2,(ANY_STRING:ANY_STRING。)。ANY_STRING
- 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 位数字字符串)。
我已经有了每个句子的邮政编码。我想创建将句子和邮政编码作为输入并返回街道名称作为输出的正则表达式或函数。
当然,我可以为上述每种方法创建不同的函数。但是,我怎么知道给定的句子适合哪种格式?是否可以通过正则表达式知道这一点?