正则表达式检测单词缩写

时间:2012-11-19 20:33:41

标签: php regex

我目前正在开发一个CSV,其中包含有关葡萄牙行政区域和邮政编码的信息,但该文件不遵循任何严格的格式,这意味着有时整个字符串都是大写的,还有其他问题。

我想解决的问题如下:某些区域的名称末尾有一个缩写,与我父级的管理级别相关,我想删除。据我所知,这是规则:

  1. 缩写词的长度不超过3个字符(到目前为止总是3个字符);
  2. 第一个字符可以是任何字母,不区分大小写;
  3. 最后2个字符总是辅音(例如Z,B,M,P,..);
  4. (编辑)缩写始终作为字符串中的最后一个字出现;
  5. (编辑2) - 字符串始终为UTF-8

    目的是从区域名称中删除此缩写。

1 个答案:

答案 0 :(得分:0)

听起来很简单..

/\b[a-z][ZBMP]{2}\b/i

将匹配任何此类描述的缩写,将字母添加到第二个字符类([ZBMP])以完成匹配。

如果它不是另一个单词的一部分(那是\b的工作),它只会匹配。