- * Example generated by -dataex-. To install: ssc install dataex
- clear
- input str412 name
- "中国河南国际合作集团有限公司 "
- "临沂蒙水水表有限公司 "
- "宁波中泰燃料有限公司 "
- "安瑞科(廊坊)能源装备集成有限公司 "
- "新疆塔城电力有限责任公司托里供电公司 "
- "新疆昌源水务准东供水有限公司 "
- "杭州临安恒晟实业投资有限公司 "
- "青海黄河上游水电开发有限责任公司 "
- end
- . list
- +---------------------------------------+
- | name |
- |---------------------------------------|
- 1. | 中国河南国际合作集团有限公司 |
- 2. | 临沂蒙水水表有限公司 |
- 3. | 宁波中泰燃料有限公司 |
- 4. | 安瑞科(廊坊)能源装备集成有限公司 |
- 5. | 新疆塔城电力有限责任公司托里供电公司 |
- |---------------------------------------|
- 6. | 新疆昌源水务准东供水有限公司 |
- 7. | 杭州临安恒晟实业投资有限公司 |
- 8. | 青海黄河上游水电开发有限责任公司 |
- +---------------------------------------+
一眼望去似乎没什么问题,但仔细看一下,你会发现公司名称最后一位多了个空格。这时候如果我们采用subinstr来替换空格,你会发现,根本不起作用,不信你可以试试。
- . replace name=subinstr(name," ","",.)
- (0 real changes made)
此时,我想到这可能不是一般意义上的空格,我猜测可能是全角空格、制表符或其他杂七杂八的空格。这个时候,正则表达式就有用武之地了,我们可以用“\s”来干掉这些莫名其妙的空格,我也不用知道你究竟是什么类型空格,全部给你干掉。
- . replace name=ustrregexra(name,"\s","")
- (8 real changes made)
- . list
- +--------------------------------------+
- | name |
- |--------------------------------------|
- 1. | 中国河南国际合作集团有限公司 |
- 2. | 临沂蒙水水表有限公司 |
- 3. | 宁波中泰燃料有限公司 |
- 4. | 安瑞科(廊坊)能源装备集成有限公司 |
- 5. | 新疆塔城电力有限责任公司托里供电公司 |
- |--------------------------------------|
- 6. | 新疆昌源水务准东供水有限公司 |
- 7. | 杭州临安恒晟实业投资有限公司 |
- 8. | 青海黄河上游水电开发有限责任公司 |
- +--------------------------------------+
Wow,此时可以看到所有的顽固空白都被轻松消灭了。
结语:今后只要遇到去掉空格问题,我们都可以统一采用这种方法,不必再用subinstr了,因为有时候会失效,而上述方法针对一切顽固空格全消灭。


雷达卡





京公网安备 11010802022788号







