搜索
bottom↓
回复: 6

怎么用正则表达式提取这几个字?

[复制链接]

出0入0汤圆

发表于 2009-11-24 22:48:23 | 显示全部楼层 |阅读模式
[2247turtle1turtle2turtle4turtle9turtle8turtle7turtle5turtle3turtle61212139httpmail139comadfetion4defaulthtmlQW]

上面这个字符串中怎么提到24987536?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2009-11-25 01:14:26 | 显示全部楼层
Function GetNumber(txt As String) As String
    Dim s As String
    Dim c As String
    Dim i As Long
   
    For i = 1 To Len(txt)
        c = Mid$(txt, i, 1)
        If c >= "0" And c <= "9" Then s = s & c
    Next
   
    GetNumber = s
End Function

出0入0汤圆

发表于 2009-11-25 01:50:12 | 显示全部楼层
不同的RE实现经常有所不同,比如UltraEdit就支持好几种,具体要看你的具体实现。

另外lz的例子有问题,"怎么提到24987536?"如果按turtle[0-9]提的话,明明是124987536嘛,lz提问不认真噢。

如果问题是单单提取的话,可以试find:turtle([0-9])turtle([0-9])turtle([0-9])turtle([0-9])turtle([0-9])turtle([0-9])turtle([0-9])turtle([0-9])turtle([0-9])

replace to \1\2\3\4\5\6\7\8\9

方法2:match:(turtle[0-0])+
在结果中去掉turtle

出0入0汤圆

发表于 2009-11-25 01:51:40 | 显示全部楼层
方法2:match:(turtle[0-0])+

更正:
方法2:match:(turtle[0-9])+

原因:敲错

出0入663汤圆

发表于 2009-11-25 02:05:24 | 显示全部楼层
3楼,本论坛发帖24小时内可以重新编辑修改的,按钮在帖子右下角。 :)

出0入0汤圆

发表于 2009-11-25 02:38:08 | 显示全部楼层
谢谢4楼。

多说一句,方法2:match:(turtle[0-9])+ 也许应该为match:{turtle[0-9]}+
RE到处都用,用法也有不少差别,比如unix/mac,不同环境也不一样,比如python,UE,Objective-C,VC,SI,Emacs,VI,perl,各种IDE,Editor,RE Lib,细节差别实在太多,建议lz说清楚具体环境,不然问题不清不楚,回答也只好谈个大概,但没头没脑就难免了。

出0入0汤圆

 楼主| 发表于 2009-11-25 20:26:27 | 显示全部楼层
谢谢大家.

因为中间英文可能变,所以我用了以下方式:

Regex ruleRegex = new Regex(@"[a-z]{4,8}\d[a-z]{4,8}\d[a-z]{4,8}\d[a-z]{4,8}\d[a-z]{4,8}\d[a-z]{4,8}\d[a-z]{4,8}\d[a-z]{4,8}\d[a-z]{4,8}\d");
string historyText = ruleRegex.Matches(removeOtherChar(historyText))[ruleRegex.Matches(removeOtherChar(historyText)).Count - 1].ToString() ;

        private string removeOtherChar(string old)
        {
            string newStr = null;
            foreach (char item in old)
            {
                if ((item > 64 && item < 91) || (item > 96 && item < 123) || (item > 48 && item < 58))
                {
                    newStr += item;
                }
            }

            return newStr;
        }
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 14:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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