各类语言的常用正则表达式

到底什么是正则表达式?
在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

常用元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

常用限定符

代码/语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
n重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

常用反义词

代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符

 中文字符

[\u4e00-\u9fa5]

JS

var pattern = /[\u4e00-\u9fa5]/,
	str = '';
console.log(pattern.test(str));

PHP

$str = '';
$isMatched = preg_match('/[\u4e00-\u9fa5]/', $str, $matches);
var_dump($isMatched, $matches);

go

package main

import (
	"fmt"
	"regexp"
)

func main() {
	str := ""
	matched, err := regexp.MatchString("[\u4e00-\u9fa5]", str)
	fmt.Println(matched, err)
}

JAVA

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

public class RegexMatches {
	
	public static void main(String args[]) {
		String str = "";
		String pattern = "[\u4e00-\u9fa5]";

		Pattern r = Pattern.compile(pattern);
		Matcher m = r.matcher(str);
		System.out.println(m.matches());
	}

}

rb

pattern = /[\u4e00-\u9fa5]/
str = ''
p pattern.match(str)

py

import re
pattern = re.compile(ur'[\u4e00-\u9fa5]')
str = u''
print(pattern.search(str))


Email地址

\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}

java

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

public class RegexMatches {
	
	public static void main(String args[]) {
		String str = "";
		String pattern = "\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}";

		Pattern r = Pattern.compile(pattern);
		Matcher m = r.matcher(str);
		System.out.println(m.matches());
	}

}

py

import re
pattern = re.compile(ur'\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}')
str = u''
print(pattern.search(str))

手机(国内)

​​​​​​​0?(13|14|15|17|18)[0-9]{9}

JAVA

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

public class RegexMatches {
	
	public static void main(String args[]) {
		String str = "";
		String pattern = "0?(13|14|15|17|18)[0-9]{9}";

		Pattern r = Pattern.compile(pattern);
		Matcher m = r.matcher(str);
		System.out.println(m.matches());
	}

}

py

import re
pattern = re.compile(ur'0?(13|14|15|17|18)[0-9]{9}')
str = u''
print(pattern.search(str))

身份证号码

\d{17}[\d|x]|\d{15}

JAVA

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

public class RegexMatches {
	
	public static void main(String args[]) {
		String str = "";
		String pattern = "\d{17}[\d|x]|\d{15}";

		Pattern r = Pattern.compile(pattern);
		Matcher m = r.matcher(str);
		System.out.println(m.matches());
	}

}

py

import re
pattern = re.compile(ur'\d{17}[\d|x]|\d{15}')
str = u''
print(pattern.search(str))

正则表达式的用处有很多,在这里由于篇幅限制,只是简单的介绍一下常用的一些不同语言下的用法,希望能够帮助到各位!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kiritobryant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值