如何使用正则表达式对字符串进行检查?

 

如:检查字符串是否符合邮箱规则;

  检查字符串是否符合大于或等于零的数字;

正则表达式的基本规则如下:

字符
x 字符 x
\\ 反斜线字符
\0n 带有八进制值 0 的字符 n (0 <= n <= 7)
\0nn 带有八进制值 0 的字符 nn (0 <= n <= 7)
\0mnn 带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh 带有十六进制值 0x 的字符 hh
\uhhhh 带有十六进制值 0x 的字符 hhhh
\t 制表符 ('\u0009')
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
\f 换页符 ('\u000C')
\a 报警 (bell) 符 ('\u0007')
\e 转义符 ('\u001B')
\cx 对应于 x 的控制符
 
字符类
[abc] abc(简单类)
[^abc] 任何字符,除了 abc(否定)
[a-zA-Z] azAZ,两头的字母包括在内(范围)
[a-d[m-p]] admp[a-dm-p](并集)
[a-z&&[def]] def(交集)
[a-z&&[^bc]] az,除了 bc[ad-z](减去)
[a-z&&[^m-p]] az,而非 mp[a-lq-z](减去)
 
预定义字符类
. 任何字符(与结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n
X{n,} X,至少 n
X{n,m} X,至少 n 次,但是不超过 m

一般以双斜杠表示该字符串为正则表达式,同时以^表示开头,$表示结束,如/^.....$/

字符串是否符合邮箱规则:/^\w+@\w+(\.\w+)+$/

\w如上表:单词字符[a-zA-Z_0-9] ,\w+:表示一个或者多个单词字符

再加上@,然后又是一个或者多个,\.表示‘.’字符,如此下去

字符串是否符合大于或等于零的数字规则:/^[1-9]\d*(\.\d+)?|0(\.\d+)?$/

[1-9]:表示第一个数字是1-9

\d:表示数字,\d*:后面有零个或者多个数字

(\.\d+)?:表示小数点后面的数,同时为一个或者一个没有

|:表示“或者”的意思

注意,在java中的字符串内需要将\转义,所有需要两个反斜杠\\,如/^[1-9]\\d*(\\.\\d+)?|0(\\.\\d+)?$/

 

以上为使用正则表达式对字符串进行检查

 

 

 

 

 

SELECT

  orders.*,

  USER.username,

  USER.sex,

  USER.address

FROM

  orders,

  USER

WHERE orders.user_id = user.id

posted on 2016-04-16 20:42  吥茼の願望  阅读(157)  评论(0编辑  收藏  举报