博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式使用
阅读量:5260 次
发布时间:2019-06-14

本文共 2837 字,大约阅读时间需要 9 分钟。

正则表达式使用

"+": 元字符规定其前导字符必须在目标对象中连续出现一次或多次;

"*": 元字符规定其前导字符必须在目标对象中出现零次或连续多次;
"?": 元字符规定其前导对象必须在目标对象中连续出现零次或一次;
{n}: 匹配确定的 n 次;
{n,}:至少匹配 n 次,'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*';
{n,m}:最少匹配 n 次且最多匹配 m 次;
\s: 用于匹配单个空格符,包括tab键和换行符;
\S: 用于匹配除单个空格符之外的所有字符;
\d: 用于匹配从0到9的数字;
\w: 用于匹配字母,数字或下划线字符;
\W: 用于匹配所有与\w不匹配的字符;
. : 用于匹配除换行符之外的所有字符;
"^":定位符规定匹配模式必须出现在目标字符串的开头;
"$":定位符规定匹配模式必须出现在目标对象的结尾;
"\b":定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一;
"\B":定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内;
/[A-Z]/: 从A到Z范围内任何一个大写字母相匹配;
/[a-z]/: 从a到z范围内任何一个小写字母相匹配;
/[0-9]/: 从0到9范围内任何一个数字相匹配;
/([a-z][A-Z][0-9])+/:任何由字母和数字组成的字符串,如 "aB0" 等相匹配。
[/code]
可以在正则表达式中使用 "()" 把字符串组合在一起。"()"符号包含的内容必须同时出现在目标对象中。
如果希望在正则表达式中实现类似编程逻辑中的"或"运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符 "|"。
例如:/to|too|2/ 将会与目标对象中的 "to", "too", 或 "2" 相匹配。
正则表达式中还有一个较为常用的运算符,即否定符 "[^]"。与前文所介绍的定位符 "^" 不同,
否定符 "[^]"规定目标对象中不能存在模式中所规定的字符串。
例如:/[^A-C]/ 上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。
一般来说,当"^"出现在 "[]"内时就被视做否定运算符;而当"^"位于"[]"之外,或没有"[]"时,则应当被视做定位符。
最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符"\"。
例如:/Th\*/  上述正则表达式将会与目标对象中的"Th*"而非"The"等相匹配。
在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先级顺序来求值。优先级如下:
1.\ 转义符
2.(), (?:), (?=), [] 圆括号和方括号
3.*, +, ?, {n}, {n,}, {n,m} 限定符
4.^, $, \anymetacharacter 位置和顺序
5.|"或"操作

js正则表达式对象 

================

exec 方法
================

rgExp.exec(str)

用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。

rgExp:包含正则表达式模式和可用标志的正则表达式对象。

str:要在其中执行查找的 String 对象或字符串文字。

说明:

如果 exec 方法没有找到匹配,则它返回 null。
如果它找到匹配,则 exec 方法返回一个数组,并且更新全局 RegExp 对象的属性,以反映匹配结果。
数组的0元素包含了完整的匹配,而第1到n元素中包含的是匹配中出现的任意一个子匹配。
这相当于没有设置全局标志 (g) 的 match 方法。
如果为正则表达式设置了全局标志,exec 从以 lastIndex 的值指示的位置开始查找。
如果没有设置全局标志,exec 忽略 lastIndex 的值,从字符串的起始位置开始搜索。

exec 方法返回的数组有三个属性,分别是 input、index 和 lastIndex。

Input 属性包含了整个被查找的字符串。Index 属性中包含了整个被查找字符串中被匹配的子字符串的位置。
LastIndex 属性中包含了匹配中最后一个字符的下一个位置。

================
test 方法
================

rgexp.test(str)

返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。 

rgexp: 包含正则表达式模式或可用标志的正则表达式对象。

str: 要在其上测试查找的字符串。

说明:

test 方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回 false。
全局 RegExp 对象的属性不由 test 方法来修改。

==================
match 方法
==================

stringObj.match(rgExp)

使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。\\

stringObj: 对其进行查找的 String 对象或字符串文字。

rgExp: 为包含正则表达式模式和可用标志的正则表达式对象。
也可以是包含正则表达式模式和可用标志的变量名或字符串文字。

说明:

如果 match 方法没有找到匹配,返回 null。如果找到匹配返回一个数组并且更新全局 RegExp 对象的属性以反映匹配结果。
match 方法返回的数组有三个属性:input、index 和 lastIndex。Input 属性包含整个的被查找字符串。
Index 属性包含了在整个被查找字符串中匹配的子字符串的位置。LastIndex 属性包含了最后一次匹配中最后一个字符的下一个位置。
如果没有设置全局标志 (g),数组的 0 元素包含整个匹配,而第 1 到 n 元素包含了匹配中曾出现过的任一个子匹配。
这相当于没有设置全局标志的 exec 方法。如果设置了全局标志,元素 0 到 n 中包含所有匹配。

=======================
search 方法
=======================

stringObj.search(rgExp)

返回与正则表达式查找内容匹配的第一个子字符串的位置。

 
stringObj: 要在其上进行查找的 String 对象或字符串文字。
rgExp: 包含正则表达式模式和可用标志的正则表达式对象。

说明:

search 方法指明是否存在相应的匹配。
如果找到一个匹配,search 方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。
如果没有找到匹配,则返回 -1。

转载于:https://www.cnblogs.com/JoeDZ/archive/2008/11/06/1327791.html

你可能感兴趣的文章
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
Ubuntu下面安装eclipse for c++
查看>>
让IE浏览器支持CSS3圆角属性的方法
查看>>
巡风源码阅读与分析---nascan.py
查看>>
LiveBinding应用 dataBind 数据绑定
查看>>
Linux重定向: > 和 &> 区别
查看>>
nginx修改内核参数
查看>>
C 筛选法找素数
查看>>
TCP为什么需要3次握手与4次挥手(转载)
查看>>
IOC容器
查看>>
Windows 2003全面优化
查看>>
URAL 1002 Phone Numbers(KMP+最短路orDP)
查看>>
web_day4_css_宽度
查看>>
electron入门心得
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
我的Hook学习笔记
查看>>