正则表达式匹配
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), ...)