查看: 653|回复: 6
打印 上一主题 下一主题

[求助] 如何用正则表达式选定6位数以上数值之外的其他字符?

[复制链接]
  • TA的每日心情
    开心
    2022-4-30 14:04
  • 签到天数: 368 天

    [LV.9]以坛为家II

    7

    主题

    1036

    回帖

    8647

    积分

    进士

    Rank: 8Rank: 8

    积分
    8647

    灌水大神章QQ 章

    跳转到指定楼层
    1
    发表于 2014-8-31 16:48:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 dave 于 2014-9-1 07:37 编辑

    例题1:242阿迪开342发到法234129380980841sdfkj进来撒  
    例题2:水电费869就爱疯了束—+?带结发174019700十分巨大


    例题1选定后字符为:242阿迪开342发到法sdfkj进来撒
    例题2选定后字符为:水电费869就爱疯了束—+?带结发十分巨大

    谢谢各位正则表达式高手,正则表达式用来提取数据库中数据

    将选中的替换为空,剩六位以上的数!

    该用户从未签到

    7

    主题

    373

    回帖

    6805

    积分

    会元

    Rank: 7Rank: 7Rank: 7

    积分
    6805

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

    2
    发表于 2014-8-31 18:32:51 | 只看该作者
    可不可以先把6位以上的数字都先揪出来,剩下就都是符合要求的了?
  • TA的每日心情
    开心
    2018-10-17 09:01
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    29

    主题

    553

    回帖

    5307

    积分

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    5307

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

    3
    发表于 2014-8-31 18:35:36 | 只看该作者
    在vbscript里,一个6位数以上的数字串可以表示为  \d{6,}  ,查找替换为空就可以。
  • TA的每日心情
    开心
    2022-4-30 14:04
  • 签到天数: 368 天

    [LV.9]以坛为家II

    7

    主题

    1036

    回帖

    8647

    积分

    进士

    Rank: 8Rank: 8

    积分
    8647

    灌水大神章QQ 章

    4
     楼主| 发表于 2014-9-1 07:35:22 | 只看该作者
    要用的是六位以上的数,所用函数只能将选中的字符替换,所选中的六位以上数以外的字符,然后将其替换,剩下的就是要的东东,anyway, Thanks a lot.
  • TA的每日心情
    奋斗
    昨天 08:43
  • 签到天数: 766 天

    [LV.10]以坛为家III

    19

    主题

    1163

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10958
    5
    发表于 2014-9-1 15:42:55 | 只看该作者
    本帖最后由 lewpad 于 2014-9-4 11:35 编辑

    要用捕获组():
    (.+)(\d{6,})(.+) 然后用 \1\ 3或 $1$3 选定非六位以上数字的字符,如果要选六位以上数字就是\2或$2
  • TA的每日心情
    开心
    2022-4-30 14:04
  • 签到天数: 368 天

    [LV.9]以坛为家II

    7

    主题

    1036

    回帖

    8647

    积分

    进士

    Rank: 8Rank: 8

    积分
    8647

    灌水大神章QQ 章

    6
     楼主| 发表于 2014-9-1 23:29:44 | 只看该作者
    好思路!谢谢,先学习再用。如一个字段有两组及以的六位以上数,怎么办

    点评

    没看懂你说的意思  发表于 2014-9-2 09:36

    该用户从未签到

    6

    主题

    413

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    11172

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

    7
    发表于 2014-9-2 18:34:48 | 只看该作者
    本帖最后由 vbnet 于 2014-9-2 18:42 编辑

    一行如果有好几个6位以上数字
    dferddd34567823uygfht678902333htyuiolkh2345676543
    可用编程来作
    供参考(用vb.net)
    ---------------------------------------------------
    目的:含6位以上数字保留
    -----------------------------------------------------
    Imports System.Text.RegularExpressions

    .....
           Dim instance As New Regex("\d{6,}")
            Dim str As String = ""
            Dim contents As MatchCollection = instance.Matches(RichTextBox1.Text)

            For Each ma As Match In contents
                str = str + ma.Value + vbCrLf
            Next

            RichTextBox1.Text = str
    ----------------------------------------------------------
    结果:
    34567823
    678902333
    2345676543



    再试:
    ------------------------------------------------------------------
    法尔考接过9号球345678997衣后将肯定在本1234567赛季引领球队锋线,
    球衣之3432398前的主人正是摩纳哥前锋贝7654321尔巴托夫,后者在
    2012年离队。453456788其他穿过这件球衣的人有萨哈、安迪-科
    尔以及布莱恩-麦克莱尔,以890874上四位曼联9号曾经的主人
    总共为球队打进1871234567粒顶级联赛进球,但87654321是仅在2010/11
    赛季,贝234567765尔巴托夫以21球夺得英超金靴。
    ---------------------------------------------------------------------
    结果:
    345678997
    1234567
    3432398
    7654321
    453456788
    890874
    1871234567
    87654321
    234567765