烦人的正则表达式(二)

上一章我们了解了正则表达式的基本元素与语法结构,但这还远远不够,我们还要把学到的知识转换为实际的可运行的代码。现在我将进一步介绍正则表达式及相关的函数。

应用正则表达式的有PHP和JavaScript,python等语言,虽然语法结构大致相同,但结合函数运用又有所不同。

JavaScript

search() — 该函数并不像中文翻译搜索表示能否找到字符串的意思,该函数会查找字符串,然后返回字符串的起始位置(从0开始)。如果找不到,则返回-1。
var test = “abcdefg”;
var t = test.search(“c”);
document.write(t);
页面输出 2

replace() — 替换函数,用于匹配字符串中的第一个参数并将其替换成第二个参数。
var str = “aaa”;
var test = str.replace(“aaa”,”bbb”);
document.write(str);
页面输出 bbb

test() — 用于检测某个字符串是否存在于文本中。如果存在匹配字符串,则返回true,否则返回false。
patt1 = “hello”;
patt2 = “el”;
patt3 = “1”;
var a = patt1.test(“hello world!”);
var b = patt2.test(“hello world!”);
var c = patt3.test(“hello world!”);
document.write(a,” “,b,” “,c);
a,b,c相应为true true false。结合之前结束的不难理解,文本虽然没有el这个单独的子字符串 ,但el存在于hello中,且没有限制边界,所以匹配成功。

exec() — 这个函数比test()函数常见多了,其实这两者匹配机制与语法都一样,只是返回值不一样。匹配成功时会返回匹配字符,失败则返回null。
patt1 = “hello”;
patt2 = “hi”;
var a = patt1.exec(“hello world”);
var b = patt2.exec(“hello world”);
document.write(a,” “,b);
页面输出hello null,这其中的规律相信你一眼就能看出来了。

match() — 匹配及用法与exec()这些类似,但返回的是包含搜索结果的数组或是null。
var str = “abcdefg”;
var t = str.match(“[a-c]”);
for(int i=0;i<t.length;i++)
document.write(t[i]+” “);
页面输出a b c。该函数匹配成功一次后会继续匹配,直到字符串末尾。