常用正则表达式处理

正则表达式匹配

Java

匹配一个结果

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

    public static void main(String[] args) {
        String s = "A876X";
        // 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来
        // 在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”
        Pattern pattern = Pattern.compile("(\\d)[^\\d]*$");
                Matcher matcher = pattern.matcher(s);
                if(matcher.find())
                    System.out.println(matcher.group(1));
    }
}

匹配多个结果

public class Test {

    public static void main(String[] args) {
        String s = "A876X";
        // 把要匹配的字符串写成正则表达式,然后要提取的字符使用括号括起来
        // 在这里,我们要提取最后一个数字,正则规则就是“一个数字加上大于等于0个非数字再加上结束符”
        Pattern pattern = Pattern.compile("(\\d)[^\\d]*$");
                Matcher matcher = pattern.matcher(s);
                while(matcher.find()){
            System.out.println(matcher.group(1));
}
                    System.out.println(matcher.group(1));
    }
}

Python2

#!/usr/bin/python
import re
line = "Cats are smarter than dogs";
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
if searchObj:
   print "searchObj.group() : ", searchObj.group()
   print "searchObj.group(1) : ", searchObj.group(1)
   print "searchObj.group(2) : ", searchObj.group(2)
else:
   print "Nothing found!!"

pattern = re.compile(r'([a-z]+) ([a-z]+)', re.I)
m = pattern.match('Hello World Wide Web')
m.group(0)                            # 返回匹配成功的整个子串
m.span(0)                             # 返回匹配成功的整个子串的索引
m.group(1)                            # 返回第一个分组匹配成功的子串
m.span(1)                             # 返回第一个分组匹配成功的子串的索引
m.group(2)                            # 返回第二个分组匹配成功的子串
m.span(2)                             # 返回第二个分组匹配成功的子串
m.groups()                            # 等价于 (m.group(1), m.group(2), ...)
KAMI
KAMI
数据挖掘研究员,专注分享数据领域的技术和业务,以及逻辑、思维和方法论

发表回复

文章结构
相关文章