1 alt="http://imgsrc.baidu.com/forum/w%3D580/sign=\w*/\w*.jpg"
2 如何替换掉:<a href="http://so.39.net/cse/search?s=4195211300598999376&entry=1&q=%E9%87%91%E5%B1%9E%E9%94%82">
2.1 s=*\w*&entry=1&替换掉s=4195211300598999376&entry=1&
2.2 q=[^"]*">替换掉q=%E9%87%91%E5%B1%9E%E9%94%82">
2.3 或上述两步一次性完成:s=*\w*&entry=1&q=[^"]*">替换掉s=4195211300598999376&entry=1&q=%E9%87%91%E5%B1%9E%E9%94%82">
2.4 或者一次完成:<a href="http://so.39.net/cse/search.s=*\w*&entry=1&q=[^"]*">(其中有用一个.的符号替换?这个符号。)也可以是 <a href="http://so.39.net/cse/search\?s=*\w*&entry=1&q=[^"]*">(用符号\转义)
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义."\"将下一个字符标记为特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配字符“n”。“\\n”匹配一个换行符。
?等价于匹配长度{0,1}
*等价于匹配长度{0,}
+等价于匹配长度{1,}
\d等价于[0-9]
\w等价于[A-Za-z_0-9]
以下两个表达式等价:
var myRegExp = /[a-z]/;
var myEegExp = =new RegExp("[a-z]");
在match(),replace(),search()方法中引用正则表达式;
在表达式中用到一些元字符不再表示原来的字面意义,如果要匹配这些有有特殊意义的元字符,必须使用"\"将这些字符转义为原义字符。
开始结束 | /.../ | :表示一个正则表达式的开始和结束;中间是元字符或普通字符;结尾可跟一个全局字符; | |
\ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例 | ||
全局字元符 | g i m | g:全局匹配;i:忽略大小写;m:多行标记; | |
空白字符 | \s | ||
匹配任意不是空白符的字符 | \S | ||
数字字符 | \d | ||
单词字符 | \w | 数字+字母+下划线; | |
单个字符 | . | 除了换行符之外的任何单个字符; | |
列举匹配 | [...] | 字符列表,匹配列出中的任意字符。 | |
[^...] | 字符补集,匹配除了列出的字符以外的全部字符; | ||
重复元字符 | {n} | 前面项重复n次; | |
{n,} | 前面项重复n次,或重复n次以上;; |
||
{n,m} | 前面项重复至少n次,或最多m次; | ||
限定符 | ? | 前面项重复至少0次或1次; | |
默认情况下,正则表达式使用最长匹配原则,即贪婪匹配原则,当"?"出现在其它限定符之后时,匹配模式适用最短匹配原则,即非贪婪呆若木鸡 | |||
+ | 前面项重复至少1次或多次; | ||
* | 前面项重复0次或多次; | ||
位置元字符 | ^ | 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。表示匹配的字符必须在最前面; | |
$ | 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。匹配最末的字符; | ||
/b | 匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。(转义字符中表示退格) | ||
分组元字符 | (...) | 里面可以是元字符或普通字符;能够记录匹配的值,被RegExp对象的属性$1,...,$9返回。形成的子匹配项按照出现的顺序存储在缓冲区中,可以被检索,而被反向引用。(pattern),(?:pattern),(?=pattern),(?!pattern); | |
选择匹配符 | | | "或"的意思; | |
$n | 与正则表达式相匹配的子串,后跟分组的序号. | ||
[\b] | 匹配一个空格; | ||
\cX | 匹配ctr.+某一个键; | ||
\f | 匹配一个表单符 | ||
\n | 匹配一个换行符 | ||
\r | 匹配一个回车符; | ||
\t | 匹配一个制表符 | ||
/[^u4e00-u9fa5]/ | 匹配汉字; | ||
[^x] | 匹配除了x以外的任意字符。 | ||
[^aeiou] | 匹配除了aeiou这几个字母以外的任意字符。 | ||
正则 ([a-z]*)。这是什么意思呢?根据正则语法:(pattern)--匹配pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。注意,在Dreamweaver中是从$1开始的。[xyz] -- 匹配所包含的任意一个字符。[A-z]就表示匹配任意大小写英文字符。* -- 匹配前面的子表达式零次或多次,在本例中就是匹配[a-z]零次或多次。整个表达式([A-z]*)就表示:匹配任意多个连续的大小写英文字符,并且所产生的区配可以从Matches中得到。
怎样匹配任意文本。后来经过一番研读,终于给匹配出来了,其实说来也很简单,不就是任意非空白字符和空白字符的组合嘛:([\s\S]*)
网页1:<TITLE>教学网</TITLE><h1>珍视学生的自主阅读</h1>
网页2:<TITLE>教学网</TITLE><h1>做一个热爱读书的学生</h1>
如上,我有一组静态网页,TITLE标签内全部相同,想用h1标签中的标题文本,批量替换TITLE标签中的标题文本。请问,如何用DW正则表达式批量操作!
查找<TITLE>.*?</TITLE>([\s\S]*?)<h2>(.*?)<\/h2>
替换为<TITLE>$2</TITLE>$1<h2>$1</h2> (记得勾选上 使用正则表达式 )
1.找到或替换网页的tppabs="..."代码。
在“查找”栏填入tppabs="[^"]*",就可以找到或替换网页的tppabs="..."代码。
2.找到或替换网页表格的高度代码。
在“查找”栏填入 height="\d+",就可以找到或替换网页表格的高度代码。
3.找到或替换网页背景色代码。
在“查找”栏填入 bgcolor="[^"]*",就可以找到或替换网页背景色代码。
4.找到或替换网页的JS代码。
在“查找”栏填入<script (.|\s|\n)*?</script>,就可以找到或替换网页的JS代码。
5.找到或替换网页的式样表代码。
在“查找”栏填入<style type="text/css">(.|\\s|\\n)*?</style>,就可以找到或替换网页的式样表代码。
6.找到或替换网页中各种类型的表格代码。
在“查找”栏填入<table border="0" cellspacing="0" width="778" height="51">(.|\s|\n)*?</table>,就可以找到或替换网页中该类型的表格代码。
字符 | 匹配 | 示例 |
^ | 输入或行的起始部分。 | ^T 匹配“tdis good earth”中的“T”,但不匹配“Uncle Tom’s Cabin”中的“T”。 |
$ | 输入或行的结尾部分。 | h$ 匹配“teach”中的“h”,但是不匹配“teacher”中的“h” |
* | 0 个或多个前置字符。 | um* 匹配“rum”中的“um”、“yummy”中的“umm”以及“huge”中的“u” |
+ | 1 个或多个前置字符。 | um+ 匹配“rum”中的“um”和“yummy”中的“umm”,但在“huge”中没有任何匹配项 |
? | 前置字符最多出现一次(即,指示前置字符是可选的)。 | st?on 匹配“Johnson”中的“son”和“Johnston”中的“ston”,但在“Appleton”和“tension”中没有任何匹配项 |
. | 除换行符外的任何单字符。 | .an 匹配短语“bran muffins can be tasty”中的“ran”和“can” |
x|y | x 或 y。 | FF0000|0000FF 匹配 bgcolor=”#FF0000” 中的“FF0000”和 font color=”#0000FF” 中的“0000FF” |
{n} | 恰好 n 个前置字符。 | o{2} 匹配“loom”中的“oo”和“mooooo”中的前两个“o”,但在“money”中没有任何匹配项 |
{n,m} | 至少 n 个、至多 m 个前置字符。 | F{2,4} 匹配“#FF0000”中的“FF”和“#FFFFFF”中的前四个“F” |
[abc] | 用括号括起来的字符中的任何一个字符。用连字符指定某一范围的字符(例如, [a-f] 等效于 [abcdef])。 | [e-g] 匹配“bed”中的“e”、“folly”中的“f”和“guard”中的“g” |
[^abc] | 未在括号中括起来的任何字符。用连字符指定某一范围的字符(例如,[^a-f] 等效于[^abcdef])。 | [^aeiou] 最初匹配“orange”中“r”、“book”中的“b”和“eek!”中的“k” |
/b | 词边界(例如空格或回车符)。 | /bb 匹配“book”中的“b”,但在“goober”和“snob”中没有任何匹配项 |
/B | 词边界之外的任何内容。 | /Bb 匹配“goober”中的“b”,但在“book”中没有任何匹配项 |
/d | 任何数字字符。等效于 [0-9]。 | /d 匹配“C3PO”中的“3”和“apartment 2G”中的“2” |
/D | 任何非数字字符。等效于 [^0-9]。 | /D 匹配“900S”中的“S”和“Q45”中的“Q” |
/f | 换页符。 | |
/n | 换行符。 | |
/r | 回车符。 | |
/s | 任何单个空白字符,包括空格、制表符、换页符或换行符。 | /sbook 匹配“blue book”中的“book”,但在“notebook”中没有任何匹配项 |
/S | 任何单个非空白字符。 | /Sbook 匹配“notebook”中的“book”,但在“blue book”中没有任何匹配项 |
/t | 制表符。 | |
/w | 任何字母数字字符,包括下划线。等效于 [A-Za-z0-9_]。 | b/w* 匹配“the barking dog”中的“barking”以及“the big black dog”中的“big”和“black” |
/W | 任何非字母数字字符。等效于 [^A-Za-z0-9_]。 | /W 匹配“Jake&Mattie”中的“&”和“100%”中的“%” |
Control+Enter 或 Shift+Enter (Windows)、 或者 Control+Return 或 Shift+Return 或 Command+ Return (Macintosh)回车符。确保如果没有使用正则表达式,则在搜索时取消对“忽略空白差别”的选择。请注意,这匹配特定字符,而不是一般意义上的换行符;例如,它不匹配 <br> 标签或 <p> 标签。回车符在“设计”视图中显示为空格而不是换行符。 |
使用括号在正则表达式内分隔出以后要引用的分组。然后在“替换”域中使用 $1、$2、$3 等来引用第一个、第二个、第三个和更后面的括号分组。 注意:在“查找内容”文本框中使用 /1、/2、/3 等(而不是 $1、$2、$3)来引用正则表达式中更早的括号分组。 例如,通过搜索 (/d+)//(/d+)//(/d+) 并用 $2/$1/$3 替换它,可以在由斜杠分隔的日期中交换日和月(因此可以在美国样式日期和欧洲样式日期之间进行转换)。
替换音标:\[\S*\]
把(註1)替换成下标;
正则表达式查找:(()(註+)(\w*)())
正则表达式替换:<sub>$1$2$3$4</sub>
创建一个RegExp实例也可以用在string类的match(),replace(),search(),splice()等方法中,用以匹配、替换、搜索或拼接字符串;
正则表达式描述了某类字符串必须满足的规则;如合理的电子邮件地址必须满足一定的规则或模式;通过正则表达式可以描述这种规则;那么只要是这种模式的字符串都是合理的电子邮件地址;
使用正则表达式,可以完成以下功能:
数据有效性验证;
替换文本
提取子字符串
用于检查某个字符串是否符合某个规则;以称为正规表达式或常规表达式,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串;
正则表达式本身是一个由各种字符组成的字符串,但是这个字符串中的字符描述了某种句法规则,也就是说,这些字符描述了某类字符串必须满足的规则,它描述了一类字符串而不是一个精确的字符串,这种规则在正则表达式这里称为匹配模式;
JS要使用正则表达式处理字符串,首先需要定义描述匹配模式(匹配规则)的正则表达式,在JS中,正则表达式通过RegExp对象表示;
可以通过RegExp()构造函数创建RegExp对象来定义正则表达式;
var reg_pattern=new RegExp("a/d")
也可以通过字面语法直接定义正则表达式:
var reg_pattern=/a\d/;
模式匹配的是“字母a后跟随一个任意的数字”;
可以在第二个斜线之后,紧跟后缀选项(标记),用以说明模式匹配的规则,如g标记表示搜索字符串中所有匹配的字符串;
var reg_pattern=/a\d/g;
var reg_pattern=new RegExp("a\d","g");
定义匹配模式后,便可以将其应用在字符串的处理中;
在string对象中,提到了3个与正则表达式相关的方法:match(regExp),replace(regExp,replaceText)和search(regExp);
RegExp对象方法:
1 exec()与String的match()功能相同;
2 test()与search()相同;
提取字符串的电话号码:
function get_phone(str){
var reg=/…/g;
return str:match(reg);}
var str="";
var arr=get_phone(str);
document.write(arr);