查看: 677|回复: 9
打印 上一主题 下一主题

[求助] 【已解决】如何提取正则匹配结果?

[复制链接]

该用户从未签到

47

主题

323

回帖

1万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
11400

灌水大神章小蜜蜂章笑傲江湖章

跳转到指定楼层
1
发表于 2016-1-11 22:02:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qiuhao1112 于 2016-1-11 22:28 编辑

最近使用notepad++和ultraedit一直有件让我非常郁闷的事,就是使用正则表达式匹配出了所需要的一堆字符串后却不知道怎么把这些字符串提取出来。。。折腾了好久,网上说ultraedit有个什么复制查找结果的功能按钮,可我愣是没找到,也不知道他们说的是哪个版本,这个问题简直要命,请高手帮我指点一下。。谢谢

另外曲线救国的方式我试过,太繁琐,太折腾,还容易出错,所以还是给个直接点的办法好了,仅提取匹配到的结果就行,谢谢了。

本帖被以下淘专辑推荐:

该用户从未签到

2121

主题

2961

回帖

6万

积分

翰林院修撰

不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

Rank: 12Rank: 12Rank: 12

积分
61056

翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

2
发表于 2016-1-11 22:14:12 | 只看该作者

额, 我还用着 UltraEdit 19。
查找时,注意勾选“列出包含字符串的行”,按下 Enter (必须这样,至少我这个版本没有按钮啥的),就出现“含有查找字符串的行”,右键“复制到剪贴板”,就把那框里所有“含有查找字符串的行”都复制到剪贴板里了。
这里只是把“含有查找字符串的行”而不是“查找字符串”复制到剪贴板,可以先行把查找字符串前后都替换成换行,这样查找字符串就单独一行了,复制得到的结果就是查找到的字符串了。
可能有更简单直接的工具和办法,暂不研究了。







该用户从未签到

29

主题

424

回帖

5232

积分

会元

Rank: 7Rank: 7Rank: 7

积分
5232

灌水大神章小蜜蜂章笑傲江湖章

3
发表于 2016-1-11 22:20:27 | 只看该作者
把匹配出来的内容分割成新行,标记这些新行,复制也好,截切也罢,都随你怎么操作了

该用户从未签到

47

主题

323

回帖

1万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
11400

灌水大神章小蜜蜂章笑傲江湖章

4
 楼主| 发表于 2016-1-11 22:27:16 | 只看该作者
Oeasy 发表于 2016-1-11 22:14
额, 我还用着 UltraEdit 19。
查找时,注意勾选“列出包含字符串的行”,按下 Enter (必须这样,至少 ...

感谢O大,这个方式我以前还真没想到过,很好的办法,再次感谢Oeasy解答的这么详细,图文并茂。

该用户从未签到

47

主题

323

回帖

1万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
11400

灌水大神章小蜜蜂章笑傲江湖章

5
 楼主| 发表于 2016-1-11 22:28:21 | 只看该作者
onlyXXenglish 发表于 2016-1-11 22:20
把匹配出来的内容分割成新行,标记这些新行,复制也好,截切也罢,都随你怎么操作了

谢谢onlyXXenglish,问题解决了

该用户从未签到

40

主题

177

回帖

1628

积分

版主

Rank: 10Rank: 10Rank: 10

积分
1628

灌水大神章小蜜蜂章笑傲江湖章管理组专用章

6
发表于 2016-1-12 01:54:54 | 只看该作者
EmEditor的话,查找之后,可以直接复制、剪切全部的。
当然,这个可能不理想,因为你的查找结果未必是一个完整的行。复制、剪切之后可能多个结果堆在一起。
所以,我的方法就是每个匹配项都用一行显示,也就是在开头和结尾都\n处理。
同时在每个匹配项的前面加一个字符,如★
为什么?
因为EmEditor可以给每行排序。这样一来,行首为★的就排列到了一起,而这些就是你想要的结果。
再将其他不要的(非★开头)的删除即可。
当然,你行首不加★,分行处理后直接复制、剪切也行。
只不过个人经验,如果CPU不行,有些大文件的复制、剪切很有些慢。

其他文本工具,本人没有用过,想来也差不多。

该用户从未签到

47

主题

323

回帖

1万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
11400

灌水大神章小蜜蜂章笑傲江湖章

7
 楼主| 发表于 2016-1-12 21:44:01 来自手机 | 只看该作者
LYX1692 发表于 2016-1-12 01:54
EmEditor的话,查找之后,可以直接复制、剪切全部的。
当然,这个可能不理想,因为你的查找结果未必是一个 ...

提取成功了  谢谢你的解答!

该用户从未签到

19

主题

593

回帖

25万

积分

状元

Rank: 9Rank: 9Rank: 9

积分
259792

灌水大神章小蜜蜂章笑傲江湖章

8
发表于 2016-1-13 09:02:48 | 只看该作者
本帖最后由 sky66 于 2016-1-13 09:09 编辑

看来楼主也可以用emeditor的话, 我提供一下我的方式,
因为常做, 昨天也在用, 我觉得还蛮方便的

Step1
用正则查找, 前后要用 ( ), 然后按”全部提取

Step2
全部提取”后会在新的标签, 这时”替换全部”, 替换为 \n\1\n

Step3
再查找一次, 然后再按一次”全部提取

Step4
又会产生一个新标签, 这个标签就是所需的正则匹配结果.


step1.png (41.29 KB, 下载次数: 0)

step1.png

step2.png (35.52 KB, 下载次数: 0)

step2.png

step3.png (28.41 KB, 下载次数: 0)

step3.png

step4.png (37.72 KB, 下载次数: 0)

step4.png
  • TA的每日心情

    2019-9-20 08:37
  • 签到天数: 214 天

    [LV.7]常住居民III

    18

    主题

    664

    回帖

    2万

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    25831

    灌水大神章小蜜蜂章笑傲江湖章翰林院专用章管理组专用章

    9
    发表于 2017-5-9 09:24:52 | 只看该作者
    其实 装个Perl 然后抽取应该比较简单~~
  • TA的每日心情
    无聊
    2021-9-17 23:16
  • 签到天数: 341 天

    [LV.8]以坛为家I

    9

    主题

    418

    回帖

    6067

    积分

    会元

    Rank: 7Rank: 7Rank: 7

    积分
    6067

    灌水大神章小蜜蜂章笑傲江湖章

    10
    发表于 2017-5-9 17:00:33 | 只看该作者
    Vim+Grep简直是神器