请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

【每日一坑 3】 找数字

[复制链接]

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2013-12-22 23:46:36 |显示全部楼层
大概就是
  1. import re
  2. p = re.compile('\d')
  3. m = p.findall( 'aAsmr3idd4bgs7Dlsf9eAF' )
  4. print ''.join(m)
复制代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

78

积分

注册会员

Rank: 2

发表于 2014-1-5 20:58:23 |显示全部楼层
为啥我这单次测总是正则快,repeat后就变成遍历快了?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2014-1-9 11:17:31 |显示全部楼层
nemo 发表于 2014-1-5 20:58
为啥我这单次测总是正则快,repeat后就变成遍历快了?

不知道哎
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

28

积分

新手上路

Rank: 1

发表于 2014-2-26 20:51:00 |显示全部楼层
#include<iostream>
#include<string>
#include<cctype>

using namespace std;

int main()
{
        string text = "aAsmr3idd4bgs7Dlsf9eAF";
        for(int i=0;i!=text.size();i++)
        {
                if(isdigit(text[i]))
                {
                        cout<<text[i]<<" ";
                }
        }
        cout<<endl;
}


回复

使用道具 举报

0

主题

0

好友

389

积分

中级会员

Rank: 3Rank: 3

发表于 2014-3-4 12:03:44 |显示全部楼层
近猪者痴 发表于 2013-12-17 19:23
正则表达式

re.findall(r'[\d|.]+',text)

可否解释一下这个正则表达式,|在[]内是什么意思?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2014-3-4 19:08:27 |显示全部楼层
fl0w 发表于 2014-3-4 12:03
可否解释一下这个正则表达式,|在[]内是什么意思?

中括号中间的竖线表示分组,就是符合前一组规则也行,符合后一组规则也行。
在这里,不加竖线也是一样的效果。
另外由于我们的题目中没有小数点,所以不加点结果也是一样的。

顺说一句,中括号中的点就是点,否则则是表示 除换行符以外的任意字符
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

389

积分

中级会员

Rank: 3Rank: 3

发表于 2014-3-5 08:58:19 |显示全部楼层
crossin先生 发表于 2014-3-4 19:08
中括号中间的竖线表示分组,就是符合前一组规则也行,符合后一组规则也行。
在这里,不加竖线也是一样的 ...

先生可不可以举个例子说说中括号内一定需要加竖线的情况
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2014-3-5 15:45:53 |显示全部楼层
fl0w 发表于 2014-3-5 08:58
先生可不可以举个例子说说中括号内一定需要加竖线的情况

我试了下
中括号里的竖线就只是表示匹配|这个字符
中括号本身就有了多匹配的功能,和竖线的功能是类似的,放在一起也没有什么用
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

50

积分

注册会员

Rank: 2

发表于 2014-6-25 23:25:11 |显示全部楼层
  1. #!/usr/bin/env python
  2. #coding:UTF-8

  3. import re

  4. text=raw_input('输入一个字符串\n')
  5. patt='.*?(\d).*?'
  6. regex=re.compile(patt)
  7. result=re.findall(regex,text)
  8. str=''
  9. for char in result:
  10.     str+=char
  11. print str
复制代码
回复

使用道具 举报

2

主题

0

好友

216

积分

中级会员

Rank: 3Rank: 3

发表于 2014-7-21 13:32:25 |显示全部楼层
import re

text = "aAsmr3idd4bgs7Dlsf9eAF"

result = re.findall(r"[\d]+",text)

print result
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-4-17 07:42 , Processed in 0.036346 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部