找回密码
 加入
搜索
查看: 3424|回复: 7

[效率算法] [已解决]正则表达式 求解 返回某个字符串 – 第一次出现之前的字符串….

  [复制链接]
发表于 2012-3-13 13:42:36 | 显示全部楼层 |阅读模式
本帖最后由 nec520 于 2012-3-13 15:01 编辑

我手上有一堆的字符串  例如

常州永安精密机械有限公司-A-B-同富裕工业区-……
永安精密机械有限公司--A-B-同富裕工业区-……

要求 – 符号第一次出现之前的 那些字符串…..
-        符号 有可能重复的一再出现

求解:
常州永安精密机械有限公司
永安精密机械有限公司

评分

参与人数 1金钱 +20 收起 理由
afan + 20 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2012-3-13 14:04:07 | 显示全部楼层
(?m)^.+(?=-)
发表于 2012-3-13 14:32:45 | 显示全部楼层
回复 2# 3mile

不能用.+ 应该用.*?

评分

参与人数 1金钱 +20 收起 理由
3mile + 20 多谢指正

查看全部评分

 楼主| 发表于 2012-3-13 14:33:16 | 显示全部楼层
匹配出来的结果是:
[01]常州永安精密机械有限公司-A-B-同富裕工业区
[02]永安精密机械有限公司--A-B-同富裕工业区

我只要
[01]常州永安精密机械有限公司
[02]永安精密机械有限公司
 楼主| 发表于 2012-3-13 14:53:44 | 显示全部楼层
回复 3# lixiaolong


    (?m)^.*?(?=-)
这样可以了  感谢
发表于 2012-3-13 14:54:15 | 显示全部楼层
#include <Array.au3>
Local $Str = _
                '常州永安精密机械有限公司-A-B-同富裕工业区-……' & @CRLF & _
                '永安精密机械有限公司--A-B-同富裕工业区-……'
Local $Test = StringRegExp($str, '(?m)^[^-]+', 3)
_ArrayDisplay($Test, UBound($Test))
发表于 2012-3-13 14:57:32 | 显示全部楼层
本帖最后由 haijie1223 于 2012-3-13 15:09 编辑

向A版学习。A版正则太牛了!
发表于 2012-6-4 22:45:34 | 显示全部楼层
a版确实牛啊,想到的都没有他的简洁
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 22:23 , Processed in 0.085522 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表