php 正则匹配 intro,正则表达式匹配及使用案例

正则表达式匹配及demo

基本模式匹配

一切从最基本的开始。模式,是正则表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。例如:

^once

这个模式包含一个特殊的字符^,表示该模式只匹配那些以once开头的字符串。例如该模式与字符串"once upon a time"匹配,与"There once was a man from NewYork"不匹配。正如如^符号表示开头一样,

math?formula=%E7%AC%A6%E5%8F%B7%E7%94%A8%E6%9D%A5%E5%8C%B9%E9%85%8D%E9%82%A3%E4%BA%9B%E4%BB%A5%E7%BB%99%E5%AE%9A%E6%A8%A1%E5%BC%8F%E7%BB%93%E5%B0%BE%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E3%80%82%20bucket

这个模式与"Who kept all of this cash in a bucket"匹配,与"buckets"不匹配。字符 ^ 和

math?formula=%E5%90%8C%E6%97%B6%E4%BD%BF%E7%94%A8%E6%97%B6%EF%BC%8C%E8%A1%A8%E7%A4%BA%E7%B2%BE%E7%A1%AE%E5%8C%B9%E9%85%8D%EF%BC%88%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%8E%E6%A8%A1%E5%BC%8F%E4%B8%80%E6%A0%B7%EF%BC%89%E3%80%82%E4%BE%8B%E5%A6%82%EF%BC%9A%20%5Ebucket

只匹配字符串"bucket"。如果一个模式不包括^和

math?formula=%EF%BC%8C%E9%82%A3%E4%B9%88%E5%AE%83%E4%B8%8E%E4%BB%BB%E4%BD%95%E5%8C%85%E5%90%AB%E8%AF%A5%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8C%B9%E9%85%8D%E3%80%82%E4%BE%8B%E5%A6%82%EF%BC%9A%E6%A8%A1%E5%BC%8F%20once%20%E4%B8%8E%E5%AD%97%E7%AC%A6%E4%B8%B2%20There%20once%20was%20a%20man%20from%20NewYork%20Who%20kept%20all%20of%20his%20cash%20in%20a%20bucket.%20%E6%98%AF%E5%8C%B9%E9%85%8D%E7%9A%84%E3%80%82%20%E5%9C%A8%E8%AF%A5%E6%A8%A1%E5%BC%8F%E4%B8%AD%E7%9A%84%E5%AD%97%E6%AF%8D(o-n-c-e)%E6%98%AF%E5%AD%97%E9%9D%A2%E7%9A%84%E5%AD%97%E7%AC%A6%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%AF%B4%EF%BC%8C%E4%BB%96%E4%BB%AC%E8%A1%A8%E7%A4%BA%E8%AF%A5%E5%AD%97%E6%AF%8D%E6%9C%AC%E8%BA%AB%EF%BC%8C%E6%95%B0%E5%AD%97%E4%B9%9F%E6%98%AF%E4%B8%80%E6%A0%B7%E7%9A%84%E3%80%82%E5%85%B6%E4%BB%96%E4%B8%80%E4%BA%9B%E7%A8%8D%E5%BE%AE%E5%A4%8D%E6%9D%82%E7%9A%84%E5%AD%97%E7%AC%A6%EF%BC%8C%E5%A6%82%E6%A0%87%E7%82%B9%E7%AC%A6%E5%8F%B7%E5%92%8C%E7%99%BD%E5%AD%97%E7%AC%A6%EF%BC%88%E7%A9%BA%E6%A0%BC%E3%80%81%E5%88%B6%E8%A1%A8%E7%AC%A6%E7%AD%89%EF%BC%89%EF%BC%8C%E8%A6%81%E7%94%A8%E5%88%B0%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97%E3%80%82%E6%89%80%E6%9C%89%E7%9A%84%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97%E9%83%BD%E7%94%A8%E5%8F%8D%E6%96%9C%E6%9D%A0(%5C)%E6%89%93%E5%A4%B4%E3%80%82%E5%88%B6%E8%A1%A8%E7%AC%A6%E7%9A%84%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97%E6%98%AF%20%5Ct%E3%80%82%E6%89%80%E4%BB%A5%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E8%A6%81%E6%A3%80%E6%B5%8B%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%98%AF%E5%90%A6%E4%BB%A5%E5%88%B6%E8%A1%A8%E7%AC%A6%E5%BC%80%E5%A4%B4%EF%BC%8C%E5%8F%AF%E4%BB%A5%E7%94%A8%E8%BF%99%E4%B8%AA%E6%A8%A1%E5%BC%8F%EF%BC%9A%20%5E%5Ct%20%E7%B1%BB%E4%BC%BC%E7%9A%84%EF%BC%8C%E7%94%A8%5Cn%E8%A1%A8%E7%A4%BA%22%E6%96%B0%E8%A1%8C%22%EF%BC%8C%5Cr%E8%A1%A8%E7%A4%BA%E5%9B%9E%E8%BD%A6%E3%80%82%E5%85%B6%E4%BB%96%E7%9A%84%E7%89%B9%E6%AE%8A%E7%AC%A6%E5%8F%B7%EF%BC%8C%E5%8F%AF%E4%BB%A5%E7%94%A8%E5%9C%A8%E5%89%8D%E9%9D%A2%E5%8A%A0%E4%B8%8A%E5%8F%8D%E6%96%9C%E6%9D%A0%EF%BC%8C%E5%A6%82%E5%8F%8D%E6%96%9C%E6%9D%A0%E6%9C%AC%E8%BA%AB%E7%94%A8%5C%5C%E8%A1%A8%E7%A4%BA%EF%BC%8C%E5%8F%A5%E5%8F%B7.%E7%94%A8%5C.%E8%A1%A8%E7%A4%BA%EF%BC%8C%E4%BB%A5%E6%AD%A4%E7%B1%BB%E6%8E%A8%E3%80%82%20%E5%AD%97%E7%AC%A6%E7%B0%87%20%E5%9C%A8INTERNET%E7%9A%84%E7%A8%8B%E5%BA%8F%E4%B8%AD%EF%BC%8C%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E9%80%9A%E5%B8%B8%E7%94%A8%E6%9D%A5%E9%AA%8C%E8%AF%81%E7%94%A8%E6%88%B7%E7%9A%84%E8%BE%93%E5%85%A5%E3%80%82%E5%BD%93%E7%94%A8%E6%88%B7%E6%8F%90%E4%BA%A4%E4%B8%80%E4%B8%AAFORM%E4%BB%A5%E5%90%8E%EF%BC%8C%E8%A6%81%E5%88%A4%E6%96%AD%E8%BE%93%E5%85%A5%E7%9A%84%E7%94%B5%E8%AF%9D%E5%8F%B7%E7%A0%81%E3%80%81%E5%9C%B0%E5%9D%80%E3%80%81EMAIL%E5%9C%B0%E5%9D%80%E3%80%81%E4%BF%A1%E7%94%A8%E5%8D%A1%E5%8F%B7%E7%A0%81%E7%AD%89%E6%98%AF%E5%90%A6%E6%9C%89%E6%95%88%EF%BC%8C%E7%94%A8%E6%99%AE%E9%80%9A%E7%9A%84%E5%9F%BA%E4%BA%8E%E5%AD%97%E9%9D%A2%E7%9A%84%E5%AD%97%E7%AC%A6%E6%98%AF%E4%B8%8D%E5%A4%9F%E7%9A%84%E3%80%82%20%E6%89%80%E4%BB%A5%E8%A6%81%E7%94%A8%E4%B8%80%E7%A7%8D%E6%9B%B4%E8%87%AA%E7%94%B1%E7%9A%84%E6%8F%8F%E8%BF%B0%E6%88%91%E4%BB%AC%E8%A6%81%E7%9A%84%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%8A%9E%E6%B3%95%EF%BC%8C%E5%AE%83%E5%B0%B1%E6%98%AF%E5%AD%97%E7%AC%A6%E7%B0%87%E3%80%82%E8%A6%81%E5%BB%BA%E7%AB%8B%E4%B8%80%E4%B8%AA%E8%A1%A8%E7%A4%BA%E6%89%80%E6%9C%89%E5%85%83%E9%9F%B3%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AD%97%E7%AC%A6%E7%B0%87%EF%BC%8C%E5%B0%B1%E6%8A%8A%E6%89%80%E6%9C%89%E7%9A%84%E5%85%83%E9%9F%B3%E5%AD%97%E7%AC%A6%E6%94%BE%E5%9C%A8%E4%B8%80%E4%B8%AA%E6%96%B9%E6%8B%AC%E5%8F%B7%E9%87%8C%EF%BC%9A%20%5BAaEeIiOoUu%5D%20%E8%BF%99%E4%B8%AA%E6%A8%A1%E5%BC%8F%E4%B8%8E%E4%BB%BB%E4%BD%95%E5%85%83%E9%9F%B3%E5%AD%97%E7%AC%A6%E5%8C%B9%E9%85%8D%EF%BC%8C%E4%BD%86%E5%8F%AA%E8%83%BD%E8%A1%A8%E7%A4%BA%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E3%80%82%E7%94%A8%E8%BF%9E%E5%AD%97%E5%8F%B7%E5%8F%AF%E4%BB%A5%E8%A1%A8%E7%A4%BA%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E7%9A%84%E8%8C%83%E5%9B%B4%EF%BC%8C%E5%A6%82%EF%BC%9A%20%5Ba-z%5D%20%2F%2F%E5%8C%B9%E9%85%8D%E6%89%80%E6%9C%89%E7%9A%84%E5%B0%8F%E5%86%99%E5%AD%97%E6%AF%8D%20%5BA-Z%5D%20%2F%2F%E5%8C%B9%E9%85%8D%E6%89%80%E6%9C%89%E7%9A%84%E5%A4%A7%E5%86%99%E5%AD%97%E6%AF%8D%20%5Ba-zA-Z%5D%20%2F%2F%E5%8C%B9%E9%85%8D%E6%89%80%E6%9C%89%E7%9A%84%E5%AD%97%E6%AF%8D%20%5B0-9%5D%20%2F%2F%E5%8C%B9%E9%85%8D%E6%89%80%E6%9C%89%E7%9A%84%E6%95%B0%E5%AD%97%20%5B0-9%5C.%5C-%5D%20%2F%2F%E5%8C%B9%E9%85%8D%E6%89%80%E6%9C%89%E7%9A%84%E6%95%B0%E5%AD%97%EF%BC%8C%E5%8F%A5%E5%8F%B7%E5%92%8C%E5%87%8F%E5%8F%B7%20%5B%20%5Cf%5Cr%5Ct%5Cn%5D%20%2F%2F%E5%8C%B9%E9%85%8D%E6%89%80%E6%9C%89%E7%9A%84%E7%99%BD%E5%AD%97%E7%AC%A6%20%E5%90%8C%E6%A0%B7%E7%9A%84%EF%BC%8C%E8%BF%99%E4%BA%9B%E4%B9%9F%E5%8F%AA%E8%A1%A8%E7%A4%BA%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%EF%BC%8C%E8%BF%99%E6%98%AF%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%B8%E9%87%8D%E8%A6%81%E7%9A%84%E3%80%82%E5%A6%82%E6%9E%9C%E8%A6%81%E5%8C%B9%E9%85%8D%E4%B8%80%E4%B8%AA%E7%94%B1%E4%B8%80%E4%B8%AA%E5%B0%8F%E5%86%99%E5%AD%97%E6%AF%8D%E5%92%8C%E4%B8%80%E4%BD%8D%E6%95%B0%E5%AD%97%E7%BB%84%E6%88%90%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%8C%E6%AF%94%E5%A6%82%22z2%22%E3%80%81%22t6%22%E6%88%96%22g7%22%EF%BC%8C%E4%BD%86%E4%B8%8D%E6%98%AF%22ab2%22%E3%80%81%22r2d3%22%20%E6%88%96%22b52%22%E7%9A%84%E8%AF%9D%EF%BC%8C%E7%94%A8%E8%BF%99%E4%B8%AA%E6%A8%A1%E5%BC%8F%EF%BC%9A%20%5E%5Ba-z%5D%5B0-9%5D

尽管[a-z]代表26个字母的范围,但在这里它只能与第一个字符是小写字母的字符串匹配。

前面曾经提到^表示字符串的开头,但它还有另外一个含义。当在一组方括号里使用 ^ 时,它表示"非"或"排除"的意思,常常用来剔除某个字符。还用前面的例子,我们要求第一个字符不能是数字:

[0-9][0-9]

math?formula=%E8%BF%99%E4%B8%AA%E6%A8%A1%E5%BC%8F%E4%B8%8E%22%265%22%E3%80%81%22g7%22%E5%8F%8A%22-2%22%E6%98%AF%E5%8C%B9%E9%85%8D%E7%9A%84%EF%BC%8C%E4%BD%86%E4%B8%8E%2212%22%E3%80%81%2266%22%E6%98%AF%E4%B8%8D%E5%8C%B9%E9%85%8D%E7%9A%84%E3%80%82%E4%B8%8B%E9%9D%A2%E6%98%AF%E5%87%A0%E4%B8%AA%E6%8E%92%E9%99%A4%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%E4%BE%8B%E5%AD%90%EF%BC%9A%20%5B%5Ea-z%5D%20%2F%2F%E9%99%A4%E4%BA%86%E5%B0%8F%E5%86%99%E5%AD%97%E6%AF%8D%E4%BB%A5%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E5%AD%97%E7%AC%A6%20%5B%5E%5C%5C%5C%2F%5C%5E%5D%20%2F%2F%E9%99%A4%E4%BA%86(%5C)(%2F)(%5E)%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E5%AD%97%E7%AC%A6%20%5B%5E%5C%22%5C'%5D%20%2F%2F%E9%99%A4%E4%BA%86%E5%8F%8C%E5%BC%95%E5%8F%B7(%22)%E5%92%8C%E5%8D%95%E5%BC%95%E5%8F%B7(')%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E5%AD%97%E7%AC%A6%20%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6%20.(%E7%82%B9%EF%BC%8C%E5%8F%A5%E5%8F%B7)%E5%9C%A8%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%B8%AD%E7%94%A8%E6%9D%A5%E8%A1%A8%E7%A4%BA%E9%99%A4%E4%BA%86%22%E6%96%B0%E8%A1%8C%22%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E5%AD%97%E7%AC%A6%E3%80%82%E6%89%80%E4%BB%A5%E6%A8%A1%E5%BC%8F%20%5E.5 与任何两个字符的、以数字5结尾和以其他非"新行"字符开头的字符串匹配。模式 . 可以匹配任何字符串,除了空串和只包括一个"新行"的字符串。

PHP的正则表达式有一些内置的通用字符簇,列表如下:

字符簇 描述

[[:alpha:]] 任何字母

[[:digit:]] 任何数字

[[:alnum:]] 任何字母和数字

[[:space:]] 任何空白字符

[[:upper:]] 任何大写字母

[[:lower:]] 任何小写字母

[[:punct:]] 任何标点符号

[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]

确定重复出现

到现在为止,你已经知道如何去匹配一个字母或数字,但更多的情况下,可能要匹配一个单词或一组数字。一个单词有若干个字母组成,一组数字有若干个单数组成。跟在字符或字符簇后面的花括号({})用来确定前面的内容的重复出现的次数。

字符簇 描述

^[a-zA-Z_]

math?formula=%E6%89%80%E6%9C%89%E7%9A%84%E5%AD%97%E6%AF%8D%E5%92%8C%E4%B8%8B%E5%88%92%E7%BA%BF%20%5E%5B%5B%3Aalpha%3A%5D%5D%7B3%7D 所有的3个字母的单词

^a

math?formula=%E5%AD%97%E6%AF%8Da%20%5Ea%7B4%7D aaaa

^a{2,4}

math?formula=aa%2Caaa%E6%88%96aaaa%20%5Ea%7B1%2C3%7D a,aa或aaa

^a{2,}

math?formula=%E5%8C%85%E5%90%AB%E5%A4%9A%E4%BA%8E%E4%B8%A4%E4%B8%AAa%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%20%5Ea%7B2%2C%7D%20%E5%A6%82%EF%BC%9Aaardvark%E5%92%8Caaab%EF%BC%8C%E4%BD%86apple%E4%B8%8D%E8%A1%8C%20a%7B2%2C%7D%20%E5%A6%82%EF%BC%9Abaad%E5%92%8Caaa%EF%BC%8C%E4%BD%86Nantucket%E4%B8%8D%E8%A1%8C%20%5Ct%7B2%7D%20%E4%B8%A4%E4%B8%AA%E5%88%B6%E8%A1%A8%E7%AC%A6%20.%7B2%7D%20%E6%89%80%E6%9C%89%E7%9A%84%E4%B8%A4%E4%B8%AA%E5%AD%97%E7%AC%A6%20%E8%BF%99%E4%BA%9B%E4%BE%8B%E5%AD%90%E6%8F%8F%E8%BF%B0%E4%BA%86%E8%8A%B1%E6%8B%AC%E5%8F%B7%E7%9A%84%E4%B8%89%E7%A7%8D%E4%B8%8D%E5%90%8C%E7%9A%84%E7%94%A8%E6%B3%95%E3%80%82%E4%B8%80%E4%B8%AA%E6%95%B0%E5%AD%97%20%7Bx%7D%20%E7%9A%84%E6%84%8F%E6%80%9D%E6%98%AF%E5%89%8D%E9%9D%A2%E7%9A%84%E5%AD%97%E7%AC%A6%E6%88%96%E5%AD%97%E7%AC%A6%E7%B0%87%E5%8F%AA%E5%87%BA%E7%8E%B0x%E6%AC%A1%20%EF%BC%9B%E4%B8%80%E4%B8%AA%E6%95%B0%E5%AD%97%E5%8A%A0%E9%80%97%E5%8F%B7%20%7Bx%2C%7D%20%E7%9A%84%E6%84%8F%E6%80%9D%E6%98%AF%E5%89%8D%E9%9D%A2%E7%9A%84%E5%86%85%E5%AE%B9%E5%87%BA%E7%8E%B0x%E6%88%96%E6%9B%B4%E5%A4%9A%E7%9A%84%E6%AC%A1%E6%95%B0%20%EF%BC%9B%E4%B8%A4%E4%B8%AA%E6%95%B0%E5%AD%97%E7%94%A8%E9%80%97%E5%8F%B7%E5%88%86%E9%9A%94%E7%9A%84%E6%95%B0%E5%AD%97%20%7Bx%2Cy%7D%20%E8%A1%A8%E7%A4%BA%20%E5%89%8D%E9%9D%A2%E7%9A%84%E5%86%85%E5%AE%B9%E8%87%B3%E5%B0%91%E5%87%BA%E7%8E%B0x%E6%AC%A1%EF%BC%8C%E4%BD%86%E4%B8%8D%E8%B6%85%E8%BF%87y%E6%AC%A1%E3%80%82%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E6%8A%8A%E6%A8%A1%E5%BC%8F%E6%89%A9%E5%B1%95%E5%88%B0%E6%9B%B4%E5%A4%9A%E7%9A%84%E5%8D%95%E8%AF%8D%E6%88%96%E6%95%B0%E5%AD%97%EF%BC%9A%20%5E%5Ba-zA-Z0-9_%5D%7B1%2C%7D // 所有包含一个以上的字母、数字或下划线的字符串

^[1-9][0-9]{0,}

math?formula=%2F%2F%20%E6%89%80%E6%9C%89%E7%9A%84%E6%AD%A3%E6%95%B4%E6%95%B0%20%5E%5C-%7B0%2C1%7D%5B0-9%5D%7B1%2C%7D // 所有的整数

^[-]?[0-9]+.?[0-9]+

math?formula=%2F%2F%20%E6%89%80%E6%9C%89%E7%9A%84%E6%B5%AE%E7%82%B9%E6%95%B0%20%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E4%BE%8B%E5%AD%90%E4%B8%8D%E5%A4%AA%E5%A5%BD%E7%90%86%E8%A7%A3%EF%BC%8C%E6%98%AF%E5%90%97%EF%BC%9F%E8%BF%99%E4%B9%88%E7%9C%8B%E5%90%A7%EF%BC%9A%E4%BB%A5%E4%B8%80%E4%B8%AA%E5%8F%AF%E9%80%89%E7%9A%84%E8%B4%9F%E5%8F%B7%20(%5B-%5D%3F)%20%E5%BC%80%E5%A4%B4%20(%5E)%E3%80%81%E8%B7%9F%E7%9D%801%E4%B8%AA%E6%88%96%E6%9B%B4%E5%A4%9A%E7%9A%84%E6%95%B0%E5%AD%97(%5B0-9%5D%2B)%E3%80%81%E5%92%8C%E4%B8%80%E4%B8%AA%E5%B0%8F%E6%95%B0%E7%82%B9(%5C.)%E5%86%8D%E8%B7%9F%E4%B8%8A1%E4%B8%AA%E6%88%96%E5%A4%9A%E4%B8%AA%E6%95%B0%E5%AD%97(%5B0-9%5D%2B)%EF%BC%8C%E5%B9%B6%E4%B8%94%E5%90%8E%E9%9D%A2%E6%B2%A1%E6%9C%89%E5%85%B6%E4%BB%96%E4%BB%BB%E4%BD%95%E4%B8%9C%E8%A5%BF()。下面你将知道能够使用的更为简单的方法。

特殊字符 ? 与 {0,1} 是相等的,它们都代表着: 0个或1个前面的内容 或 前面的内容是可选的 。所以刚才的例子可以简化为:

^-?[0-9]{1,}.?[0-9]{1,}

math?formula=%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6%20*%20%E4%B8%8E%20%7B0%2C%7D%20%E6%98%AF%E7%9B%B8%E7%AD%89%E7%9A%84%EF%BC%8C%E5%AE%83%E4%BB%AC%E9%83%BD%E4%BB%A3%E8%A1%A8%E7%9D%80%200%20%E4%B8%AA%E6%88%96%E5%A4%9A%E4%B8%AA%E5%89%8D%E9%9D%A2%E7%9A%84%E5%86%85%E5%AE%B9%20%E3%80%82%E6%9C%80%E5%90%8E%EF%BC%8C%E5%AD%97%E7%AC%A6%20%2B%20%E4%B8%8E%20%7B1%2C%7D%20%E6%98%AF%E7%9B%B8%E7%AD%89%E7%9A%84%EF%BC%8C%E8%A1%A8%E7%A4%BA%201%20%E4%B8%AA%E6%88%96%E5%A4%9A%E4%B8%AA%E5%89%8D%E9%9D%A2%E7%9A%84%E5%86%85%E5%AE%B9%20%EF%BC%8C%E6%89%80%E4%BB%A5%E4%B8%8A%E9%9D%A2%E7%9A%844%E4%B8%AA%E4%BE%8B%E5%AD%90%E5%8F%AF%E4%BB%A5%E5%86%99%E6%88%90%EF%BC%9A%20%5E%5Ba-zA-Z0-9_%5D%2B // 所有包含一个以上的字母、数字或下划线的字符串

^[1-9][0-9]*

math?formula=%2F%2F%20%E6%89%80%E6%9C%89%E7%9A%84%E6%AD%A3%E6%95%B4%E6%95%B0%20%5E%5C-%3F%5B0-9%5D%2B // 所有的整数

^[-]?[0-9]+(.[0-9]+)?$ // 所有的浮点数

使用案例

字符串是否全是数字:String regex = "[0-9]";*

@Test

public void test2(){

String regex = "[0-9]*";

String str = "123123";

String str1 = "123aaa";

System.out.println(str.matches(regex)); //输出结果: true

System.out.println(str1.matches(regex)); //输出结果: false

}

2.手机号是否是11位数字:String regex = "[0-9]{11}"; 或 String regex = "\d{11}";

@Test

public void test2(){

String regex = "[0-9]{11}";

//String regex = "\\d{11}";

String str = "12345678901";

String str1 = "1234567890";

System.out.println(str.matches(regex)); //输出结果: true

System.out.println(str1.matches(regex)); //输出结果: false

}

3.字符串是否是中文

@Test

public void test2(){

String str = "测试1";

String str1 = "测试";

System.out.println(checkname(str)); //输出结果: false

System.out.println(checkname(str1)); //输出结果: true

}

public boolean checkname(String name){

int n = 0;

for(int i = 0; i < name.length(); i++) {

n = (int)name.charAt(i);

if(!(19968 <= n && n <40869)) {

return false;

}

}

return true;

}

4.字符串是否含有特殊字符:String regex = "^[\sA-Za-z0-9\u4e00-\u9fa5()(),,_—-]+$";

@Test

public void test2(){

String str = "测试1";

String str1 = "测试.";

String str2 = "测试,";

String regex = "^[\\sA-Za-z0-9\\u4e00-\\u9fa5()(),,_—-]+$";

System.out.println(str.matches(regex));

System.out.println(str1.matches(regex));

System.out.println(str2.matches(regex));

}

5.字符串是否包含某个特定中文:String regex = "^[\x{6d4b}]{0,1}[\x{8bd5}]{0,1}$";

//字符串是否包含 "测试"两字中文,需要先将中文进行unicode转码

@Test

public void test2(){

String str = "测试";

String str1 = "测1试";

String regex = "^[\\x{6d4b}]{0,1}[\\x{8bd5}]{0,1}$";

System.out.println(str.matches(regex)); //输出结果: true

System.out.println(str1.matches(regex)); //输出结果: false

}

6.用replaceAll 配合正则替换字符串中的值

@Test

public void test2(){

String str = "测试";

String regex = "^[\\x{6d4b}]{0,1}[\\x{8bd5}]{0,1}$";

str = str.replaceAll(regex,"啦啦");

System.out.println(str); //输出结果: 啦啦

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值