zoukankan      html  css  js  c++  java
  • 常用的正则表达式

     1 package com.rah;
     2 /***
     3  * 
     4  * @author team
     5  *
     6  */
     7 public class Demo1 {
     8 
     9     public static void main(String[] args) {
    10         /***
    11          * 反斜线在程序中必须以\表示如下:
    12          */
    13         System.out.println("\".matches("\\"));
    14         /***
    15          * ("-?\d+")匹配:可能有一个负号,或者后面跟着一位或多位数字
    16          */
    17         System.out.println("-1234".matches("-?\d+"));20         /***
    21          * ("(-|\+)?\d+")匹配:表示字符串的起始字符可能是一个-或者+(+有特殊意义,需要用\转义),后面跟着一位或多位数字
    22          */
    23         System.out.println("+911".matches("(-|\+)?\d+"));
    24     }
    25 
    26 }

    1.匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

    2.匹配网址URL的正则表达式:[a-zA-z]+://[^s]* 

    3.匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

    4.匹配腾讯QQ号:[1-9][0-9]{4,} 

    5.匹配中国邮政编码:[1-9]d{5}(?!d) 
    评注:中国邮政编码为6位数字 
    6.匹配身份证:d{15}|d{18} 
    评注:中国的身份证为15位或18位 
    7.匹配ip地址:d+.d+.d+.d+ 
    评注:提取ip地址时有用 

    匹配特定字符串: 
    ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串 
    ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串 
    ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串 
    ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串 
    ^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

    下面是一些特殊字符: 
    正则表达式中的特殊字符: (学习参考书-<<精通正则表达式>>) 
    字符 
    意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。 
    例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示 
    匹配一个单词的分界线。 
    或者: 
    对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。 
    例如:*是一个特殊字符,匹配任意个字符(包括0个字符);例如:/a*/意味匹配0个或多个a。 
    为了匹配字面上的*,在a前面加一个反斜杠;例如:/a*/匹配'a*'。

    字符^ 
    意义:表示匹配的字符必须在最前边。 
    例如:/^A/不匹配"an A,"中的'A',但匹配"An A."中最前面的'A'。

    字符$ 
    意义:与^类似,匹配最末的字符。 
    例如:/t$/不匹配"eater"中的't',但匹配"eat"中的't'。

    字符* 
    意义:匹配*前面的字符0次或n次。 
    例如:/bo*/匹配"A ghost booooed"中的'boooo'或"A bird warbled"中的'b',但不匹配"A goat g 
    runted"中的任何字符。

    字符+ 
    意义:匹配+号前面的字符1次或n次。等价于{1,}。 
    例如:/a+/匹配"candy"中的'a'和"caaaaaaandy."中的所有'a'。

    字符? 
    意义:匹配?前面的字符0次或1次。 
    例如:/e?le?/匹配"angel"中的'el'和"angle."中的'le'。

    字符. 
    意义:(小数点)匹配除换行符外的所有单个的字符。 
    例如:/.n/匹配"nay, an apple is on the tree"中的'an'和'on',但不匹配'nay'。


    字符(x) 
    意义:匹配'x'并记录匹配的值。 
    例如:/(foo)/匹配和记录"foo bar."中的'foo'。匹配子串能被结果数组中的素[1], ..., [n] 返 
    回,或被RegExp对象的属性$1, ..., $9返回。

    字符x|y 
    意义:匹配'x'或者'y'。 
    例如:/green|red/匹配"green apple"中的'green'和"red apple."中的'red'。

    字符{n} 
    意义:这里的n是一个正整数。匹配前面的n个字符。 
    例如:/a{2}/不匹配"candy,"中的'a',但匹配"caandy," 中的所有'a'和"caaandy."中前面的两个 
    'a'。

    字符{n,} 
    意义:这里的n是一个正整数。匹配至少n个前面的字符。 
    例如:/a{2,}不匹配"candy"中的'a',但匹配"caandy"中的所有'a'和"caaaaaaandy."中的所有'a'

    字符{n,m} 
    意义:这里的n和m都是正整数。匹配至少n个最多m个前面的字符。 
    例如:/a{1,3}/不匹配"cndy"中的任何字符,但匹配 "candy,"中的'a',"caandy," 中的前面两个 
    'a'和"caaaaaaandy"中前面的三个'a',注意:即使"caaaaaaandy" 中有很多个'a',但只匹配前面的三 
    个'a'即"aaa"。

    字符[xyz] 
    意义:一字符列表,匹配列出中的任一字符。你可以通过连字符-指出一个字符范围。 
    例如:[abcd]跟[a-c]一样。它们匹配"brisket"中的'b'和"ache"中的'c'。

    字符[^xyz] 
    意义:一字符补集,也就是说,它匹配除了列出的字符外的所有东西。 你可以使用连字符-指出一 
    字符范围。 
    例如:[^abc]和[^a-c]等价,它们最早匹配"brisket"中的'r'和"chop."中的'h'。

    字符 
    意义:匹配一个空格(不要与b混淆)

    字符b 
    意义:匹配一个单词的分界线,比如一个空格(不要与混淆) 
    例如:/bnw/匹配"noonday"中的'no',/wyb/匹配"possibly yesterday."中的'ly'。

    字符B 
    意义:匹配一个单词的非分界线 
    例如:/wBn/匹配"noonday"中的'on',/yBw/匹配"possibly yesterday."中的'ye'。

    字符cX 
    意义:这里的X是一个控制字符。匹配一个字符串的控制字符。 
    例如:/cM/匹配一个字符串中的control-M。

    字符d 
    意义:匹配一个数字,等价于[0-9]。 
    例如:/d/或/[0-9]/匹配"B2 is the suite number."中的'2'。

    字符D 
    意义:匹配任何的非数字,等价于[^0-9]。 
    例如:/D/或/[^0-9]/匹配"B2 is the suite number."中的'B'。

    字符f 
    意义:匹配一个表单符

    字符n 
    意义:匹配一个换行符

    字符r 
    意义:匹配一个回车符

    字符s 
    意义:匹配一个单个white空格符,包括空格,tab,form feed,换行符,等价于[ fnrtv]。 
    例如:/sw*/匹配"foo bar."中的' bar'。

    字符S 
    意义:匹配除white空格符以外的一个单个的字符,等价于[^ fnrtv]。 
    例如:/S/w*匹配"foo bar."中的'foo'。

    字符t 
    意义:匹配一个制表符

    字符v 
    意义:匹配一个顶头制表符

    字符w 
    意义:匹配所有的数字和字母以及下划线,等价于[A-Za-z0-9_]。 
    例如:/w/匹配"apple,"中的'a',"$5.28,"中的'5'和"3D."中的'3'。

    字符W 
    意义:匹配除数字、字母外及下划线外的其它字符,等价于[^A-Za-z0-9_]。 
    例如:/W/或者/[^$A-Za-z0-9_]/匹配"50%."中的'%'。

    字符n 
    意义:这里的n是一个正整数。匹配一个正则表达式的最后一个子串的n的值(计数左圆括号)。

    例如:/apple(,)sorange1/匹配"apple, orange, cherry, peach."中的'apple, orange',下面 
    有一个更加完整的例子。 
    注意:如果左圆括号中的数字比n指定的数字还小,则n取下一行的八进制escape作为描述。

    字符ooctal和xhex 
    意义:这里的ooctal是一个八进制的escape值,而xhex是一个十六进制的escape值,允许在一个正则表达式中嵌入ASCII码。

  • 相关阅读:
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    微信小程序TodoList
    C语言88案例-找出数列中的最大值和最小值
    C语言88案例-使用指针的指针输出字符串
  • 原文地址:https://www.cnblogs.com/wjn563/p/4036174.html
Copyright © 2011-2022 走看看