查看: 749|回复: 20
打印 上一主题 下一主题

[求助] 懇請正則大師再賜教 : 正則語法.....感恩大德

[复制链接]
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    跳转到指定楼层
    1
    发表于 2019-5-7 21:05:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 喬治兄 于 2019-5-8 02:57 编辑

    此問題實為  [求助] 請賜教:正則語法 .....之未完成滴 Part 2.https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=33536&extra=
    盼 站上同好對正則有研究 之 大師 再次蒞臨指導不吝惜賜教 .....謝謝...感恩
    簡化問題如下也就是如何在所有和 headword 相同的內容中加上----->  headword
    aa
    <a href="entry://aa">aa</a> , <a href="entry://AAA">AAA</a> , <a href="entry://aah">aah</a> , <a href="entry://aardvark">aardvark</a> , <a href="entry://aardwolf">aardwolf</a> , <a href="entry://Aaron">Aaron</a> , <a href="entry://Aaron's rod">Aaron's rod</a>
    </>







    問題如附件:
    處理前
    boy
    <b>boy</b><br>
    <a href="entry://altar boy">altar boy</a> , <a href="entry://attaboy">attaboy</a> , <a href="entry://backroom boy">backroom boy</a> , <a href="entry://ball boy">ball boy</a> , <a href="entry://bellboy">bellboy</a> , <a href="entry://blue-eyed boy">blue-eyed boy</a> , <a href="entry://boy">boy</a> , <a href="entry://Boy Scout">boy Scout</a> , <a href="entry://boy wonder">boy wonder</a> , <a href="entry://boyar">boyar</a> , <a href="entry://boycott">boycott</a> , <a href="entry://boyfriend">boyfriend</a> , <a href="entry://boyhood">boyhood</a> , <a href="entry://boyish">boyish</a> , <a href="entry://boyishly">boyishly</a> , <a href="entry://Boyle">boyle</a> , <a href="entry://boyo">boyo</a> , <a href="entry://boysenberry">boysenberry</a> , <a href="entry://busboy">busboy</a> , <a href="entry://cabin boy">cabin boy</a> , <a href="entry://carboy">carboy</a> , <a href="entry://choirboy">choirboy</a> , <a href="entry://cowboy">cowboy</a> , <a href="entry://cowboy hat">cowboy hat</a> , <a href="entry://doughboy">doughboy</a> , <a href="entry://ex-boyfriend">ex-boyfriend</a> , <a href="entry://fair-haired boy">fair-haired boy</a> , <a href="entry://flamboyance">flamboyance</a> , <a href="entry://flamboyancy">flamboyancy</a> , <a href="entry://flamboyant">flamboyant</a> , <a href="entry://flamboyantly">flamboyantly</a> , <a href="entry://hautboy">hautboy</a> , <a href="entry://highboy">highboy</a> , <a href="entry://homeboy">homeboy</a> , <a href="entry://houseboy">houseboy</a> , <a href="entry://linkboy">linkboy</a> , <a href="entry://lowboy">lowboy</a> , <a href="entry://mama's boy">mama's boy</a> , <a href="entry://messenger boy">messenger boy</a> , <a href="entry://mother's boy">mother's boy</a> , <a href="entry://newsboy">newsboy</a> , <a href="entry://office boy">office boy</a> , <a href="entry://old boy">old boy</a> , <a href="entry://pageboy">pageboy</a> , <a href="entry://playboy">playboy</a> , <a href="entry://ploughboy">ploughboy</a> , <a href="entry://plowboy">plowboy</a> , <a href="entry://poor boy">poor boy</a> , <a href="entry://potboy">potboy</a> , <a href="entry://schoolboy">schoolboy</a> , <a href="entry://stableboy">stableboy</a> , <a href="entry://tallboy">tallboy</a> , <a href="entry://tomboy">tomboy</a> , <a href="entry://tomboyish">tomboyish</a> , <a href="entry://whipping boy">whipping boy</a> , <a href="entry://wide boy">wide boy</a>
    </>

    處理成如下


    boy
    <b>boy</b><br>
    <a href="entry://altar boy">altar <mark>boy</mark></a> , <a href="entry://attaboy">atta<mark>boy</mark></a> , <a href="entry://backroom boy">backroom <mark>boy</mark></a> , <a href="entry://ball boy">ball <mark>boy</mark></a> , <a href="entry://bellboy">bell<mark>boy</mark></a> , <a href="entry://blue-eyed boy">blue-eyed <mark>boy</mark></a> , <a href="entry://boy"><mark>boy</mark></a> , <a href="entry://Boy Scout"><mark>boy</mark> Scout</a> , <a href="entry://boy wonder"><mark>boy</mark> wonder</a> , <a href="entry://boyar"><mark>boy</mark>ar</a> , <a href="entry://boycott"><mark>boy</mark>cott</a> , <a href="entry://boyfriend"><mark>boy</mark>friend</a> , <a href="entry://boyhood"><mark>boy</mark>hood</a> , <a href="entry://boyish"><mark>boy</mark>ish</a> , <a href="entry://boyishly"><mark>boy</mark>ishly</a> , <a href="entry://Boyle"><mark>boy</mark>le</a> , <a href="entry://boyo"><mark>boy</mark>o</a> , <a href="entry://boysenberry"><mark>boy</mark>senberry</a> , <a href="entry://busboy">bus<mark>boy</mark></a> , <a href="entry://cabin boy">cabin <mark>boy</mark></a> , <a href="entry://carboy">car<mark>boy</mark></a> , <a href="entry://choirboy">choir<mark>boy</mark></a> , <a href="entry://cowboy">cow<mark>boy</mark></a> , <a href="entry://cowboy hat">cow<mark>boy</mark> hat</a> , <a href="entry://doughboy">dough<mark>boy</mark></a> , <a href="entry://ex-boyfriend">ex-<mark>boy</mark>friend</a> , <a href="entry://fair-haired boy">fair-haired <mark>boy</mark></a> , <a href="entry://flamboyance">flam<mark>boy</mark>ance</a> , <a href="entry://flamboyancy">flam<mark>boy</mark>ancy</a> , <a href="entry://flamboyant">flam<mark>boy</mark>ant</a> , <a href="entry://flamboyantly">flam<mark>boy</mark>antly</a> , <a href="entry://hautboy">haut<mark>boy</mark></a> , <a href="entry://highboy">high<mark>boy</mark></a> , <a href="entry://homeboy">home<mark>boy</mark></a> , <a href="entry://houseboy">house<mark>boy</mark></a> , <a href="entry://linkboy">link<mark>boy</mark></a> , <a href="entry://lowboy">low<mark>boy</mark></a> , <a href="entry://mama's boy">mama's <mark>boy</mark></a> , <a href="entry://messenger boy">messenger <mark>boy</mark></a> , <a href="entry://mother's boy">mother's <mark>boy</mark></a> , <a href="entry://newsboy">news<mark>boy</mark></a> , <a href="entry://office boy">office <mark>boy</mark></a> , <a href="entry://old boy">old <mark>boy</mark></a> , <a href="entry://pageboy">page<mark>boy</mark></a> , <a href="entry://playboy">play<mark>boy</mark></a> , <a href="entry://ploughboy">plough<mark>boy</mark></a> , <a href="entry://plowboy">plow<mark>boy</mark></a> , <a href="entry://poor boy">poor <mark>boy</mark></a> , <a href="entry://potboy">pot<mark>boy</mark></a> , <a href="entry://schoolboy">school<mark>boy</mark></a> , <a href="entry://stableboy">stable<mark>boy</mark></a> , <a href="entry://tallboy">tall<mark>boy</mark></a> , <a href="entry://tomboy">tom<mark>boy</mark></a> , <a href="entry://tomboyish">tom<mark>boy</mark>ish</a> , <a href="entry://whipping boy">whipping <mark>boy</mark></a> , <a href="entry://wide boy">wide <mark>boy</mark></a>
    </>

    處理前.png (36.04 KB, 下载次数: 5)

    處理前.png

    處理後.png (32.74 KB, 下载次数: 2)

    處理後.png

    highlight.zip

    12.44 KB, 下载次数: 2, 下载积分: 米 -5 粒

    本帖被以下淘专辑推荐:

  • TA的每日心情
    开心
    2019-6-23 00:02
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    43

    主题

    391

    回帖

    5万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    54723
    推荐
    发表于 2019-5-8 09:54:23 | 只看该作者
    sss 发表于 2019-5-8 09:35
    发帖前我还真试过了, 没搞成功.

    抱歉啊,看来不试试还真不行,我虽然写的时候考虑到这个了,但是因为乔治兄只提供了一个entry,我也就没有测试多个entry时候的情况,结果果然有问题...实践是检验真理的唯一标准啊...
    我修改了一下,您看看:
    https://regex101.com/r/oXh7Ce/2

    该用户从未签到

    48

    主题

    304

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11204

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

    推荐
    发表于 2019-5-8 09:33:02 | 只看该作者
    类似的事儿, 我做过, 也帮别人做过.
    一种简单的思路供参考:

    1. 1. 为安全起见, 先进行预变换, 譬如按MDX词头+内容排成一排; 这么做的另外目的是方便一些可以直接按行进行编辑的工具.
    2. 2. 预变换:联合标记目标及词头; 譬如将<a href="entry:///\([^<>]\{-0,}\)">变换成<a>boy<a href="entry:///\([^<>]\{-0,}\)">
    3. 3. 主变换:  将<a>boy<a href="entry://poor boy">poor boy</a>变换成<a>boy<a href="entry://poor boy">poor <mark>boy</mark></a>
    4. * 这一步有的工具可以一个命令行搞定
    5. 4. 复原变换: 去掉<a>boy<a href="entry://poor boy">poor boy</a>中的<a>boy
    6. 5. 复原变换: 恢复成多行
    复制代码

  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    250

    主题

    2966

    回帖

    53万

    积分

    状元

    吃水不忘挖井人

    Rank: 9Rank: 9Rank: 9

    积分
    531111

    灌水大神章笑傲江湖章推广专家QQ 章

    2
    发表于 2019-5-7 21:56:42 | 只看该作者
    本帖最后由 jonah_w 于 2019-5-7 22:00 编辑

    完全用正则的话,非常不方便,需要重复很多次替换。
    https://regex101.com/r/CXZIs9/2
    正则本身不支持什么逻辑运算,这个替换需求需要获取前面的一个值,然后后面对应修改,这种要么编辑器提供某种智能支持,要么用一些正则增强工具,如sed, awk, perl之类的。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    3
     楼主| 发表于 2019-5-7 23:20:26 | 只看该作者
    jonah_w 发表于 2019-5-7 21:56
    完全用正则的话,非常不方便,需要重复很多次替换。
    https://regex101.com/r/CXZIs9/2
    正则本身不支持什么 ...

    jonah_w 兄:
    sed, awk, perl 都不會
  • TA的每日心情
    开心
    2019-6-23 00:02
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    43

    主题

    391

    回帖

    5万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    54723
    4
    发表于 2019-5-8 07:14:27 | 只看该作者
    本帖最后由 ogrishman 于 2019-5-8 10:12 编辑

    用论坛里那个mdx多功能转换器呀,有一个功能不就刚好是干这个的,我试了一下应该就是你想要的效果


    有朋友私信问我要下载地址,我也记不清什么时间在论坛上下载的,有人要我就分享一下:
    链接: https://pan.baidu.com/s/1KR3CJWngDZG6tZy_GJINmw
    提取码: c339
  • TA的每日心情
    开心
    2019-6-23 00:02
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    43

    主题

    391

    回帖

    5万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    54723
    5
    发表于 2019-5-8 07:34:19 | 只看该作者
    本帖最后由 ogrishman 于 2019-5-8 07:36 编辑

    我研究了一下直接用正则表达式也可以,不过好像非常麻烦.....,这么复杂,性能肯定不好,你可以试试。
    https://regex101.com/r/oXh7Ce/1

    评分

    1

    查看全部评分

    该用户从未签到

    48

    主题

    304

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11204

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

    6
    发表于 2019-5-8 09:13:30 | 只看该作者
    ogrishman 发表于 2019-5-8 07:34
    我研究了一下直接用正则表达式也可以,不过好像非常麻烦.....,这么复杂,性能肯定不好,你可以试试。
    http ...

    如果对整个文件进行应用呢? 不知道有否考虑过, 谢谢
  • TA的每日心情
    开心
    2019-6-23 00:02
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    43

    主题

    391

    回帖

    5万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    54723
    7
    发表于 2019-5-8 09:24:55 | 只看该作者
    可以的,你试试,这个我考虑到了

    该用户从未签到

    48

    主题

    304

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11204

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

    9
    发表于 2019-5-8 09:35:36 | 只看该作者
    ogrishman 发表于 2019-5-8 09:24
    可以的,你试试,这个我考虑到了

    发帖前我还真试过了, 没搞成功.
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    11
     楼主| 发表于 2019-5-8 10:15:41 | 只看该作者
    本帖最后由 喬治兄 于 2019-5-8 10:30 编辑
    ogrishman 发表于 2019-5-8 07:34
    我研究了一下直接用正则表达式也可以,不过好像非常麻烦.....,这么复杂,性能肯定不好,你可以试试。
    http ...


    感謝 ogrishman 兄指點迷津, 解決小弟此複雜的正則語法.....謝謝..感恩....
    ogrishman 兄:
    感謝您提供兩個解決方法...........太感謝您滴幫忙..........讚! 讚! 讚! .................

  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    12
     楼主| 发表于 2019-5-8 10:25:19 | 只看该作者
    sss 发表于 2019-5-8 09:33
    类似的事儿, 我做过, 也帮别人做过.
    一种简单的思路供参考:

    感謝 sss 兄 提供另一可行之解決思路
    昨天請教流星兄似乎也是此思路......
    只是沒搞懂他的意思不知所云
    經兄之說明才有點腦洞開竅
    感謝.........................讚! 讚! 讚! ..............
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    13
     楼主| 发表于 2019-5-8 10:38:10 | 只看该作者
    ogrishman 发表于 2019-5-8 07:14
    用论坛里那个mdx多功能转换器呀,有一个功能不就刚好是干这个的,我试了一下应该就是你想要的效果

    感謝 ogrishman 兄不僅解了問題還提供此工具.....謝謝您
  • TA的每日心情
    开心
    2018-8-26 14:41
  • 签到天数: 45 天

    [LV.5]常住居民I

    13

    主题

    121

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    16623
    14
    发表于 2019-5-8 10:41:35 | 只看该作者
    學一學python吧
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    15
     楼主| 发表于 2019-5-8 10:45:57 | 只看该作者

    Android 兄:
    python 實在.........哈! 哈! 哈!
    看到編程和正則就偏頭痛..........
  • TA的每日心情
    奋斗
    2022-6-1 19:02
  • 签到天数: 377 天

    [LV.9]以坛为家II

    27

    主题

    556

    回帖

    15万

    积分

    状元

    喜欢折腾,但能力有限

    Rank: 9Rank: 9Rank: 9

    积分
    150901

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

    16
    发表于 2019-5-8 14:56:06 来自手机 | 只看该作者
    喬治兄 发表于 2019-5-8 10:45
    Android 兄:
    python 實在.........哈! 哈! 哈!
    看到編程和正則就偏頭痛.......... ...

    不想学也行,下次直接把全部源码上传,别人处理好再给你就行。这样还最简单快捷,像我就可以代劳。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    17
     楼主| 发表于 2019-5-8 15:08:41 | 只看该作者
    simonfire 发表于 2019-5-8 14:56
    不想学也行,下次直接把全部源码上传,别人处理好再给你就行。这样还最简单快捷,像我就可以代劳。 ...

    simonfire 兄:
    檔案太大傳不上來
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    250

    主题

    2966

    回帖

    53万

    积分

    状元

    吃水不忘挖井人

    Rank: 9Rank: 9Rank: 9

    积分
    531111

    灌水大神章笑傲江湖章推广专家QQ 章

    18
    发表于 2019-5-8 15:58:16 | 只看该作者
    本帖最后由 jonah_w 于 2019-5-8 16:06 编辑
    ogrishman 发表于 2019-5-8 09:54
    抱歉啊,看来不试试还真不行,我虽然写的时候考虑到这个了,但是因为乔治兄只提供了一个entry,我也就没 ...

    这个正则厉害了,没想到能这么写。另外,原来JavaScript的正则居然支持逆向不定长环视… 厉害

    我稍微改了下,使其不匹配<b></b>之间的词头。
    https://regex101.com/r/oXh7Ce/3
    p.s. 不过非常可惜,试了下正则支持力度非常大的Sublime也不支持逆向不定长…
    这个替换看来只能放在那个网页里进行,或者写js程序了。

    不知道哪个编辑器支持逆向不定长环视。

    评分

    1

    查看全部评分

  • TA的每日心情
    郁闷
    2018-5-17 09:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    56

    主题

    490

    回帖

    1万

    积分

    分区版主

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

    积分
    12730

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

    19
    发表于 2019-5-8 17:39:46 | 只看该作者
    把文件传上来,我或许可以帮你处理好。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    20
     楼主| 发表于 2019-5-9 00:20:51 | 只看该作者
    y8888 发表于 2019-5-8 17:39
    把文件传上来,我或许可以帮你处理好。

    感謝 y8888 兄熱心關懷
    小弟最後已土法煉鋼法搞定啦.....
    Thanks a lot
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    254

    主题

    4264

    回帖

    7万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    79050

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

    QQ
    21
     楼主| 发表于 2019-5-9 00:29:42 | 只看该作者
    ogrishman 发表于 2019-5-8 09:54
    抱歉啊,看来不试试还真不行,我虽然写的时候考虑到这个了,但是因为乔治兄只提供了一个entry,我也就没 ...

    ogrishman 兄:
    感謝您提供多條正則......Thanks a lot.....
    小弟最後以土法煉鋼搞定
    謝謝您.....再次向您致萬分感謝
    也向其他 sss 兄, jonah_w 兄,  simonfire 兄,..Android 兄,.y8888 兄....謝謝

    Thanks Again