首先说明一点,正则表达式是匹配机制,它所确定的是一种字符串的模式,即匹配的是一类字符串,当然这一类字符串也可以是只包含仅仅一种字符串的一类。它可以实现包含(子串)、以xx开头,以xx结尾等等模式的匹配。
1.java
在java中,要引用java.util.regex包。
通常在面向对象语言是,会写一个通用类,用来检测不同类型的字符串,方便重用。
import java.util.regex.*;
class RegexTest{
//本例中表达的是判断content是否是以Khufu开头的字符串
public static void main(String args[]){
//待匹配的字符串content
String content = "Khufu is my lover";
//你所需要的匹配模式pattern
String pattern = "^Khufu.*";
//通过布尔isMatch值知道模式和内容是否匹配
boolean isMatch = Pattern.matches(pattern, content);
//下面根据isMatch值来进行你想要的操作
……
……
……
}
}
2.PHP
在PHP中使用的是preg_match(String $pattern,String $content )方法检查匹配。
//本例和Java例子类似,要注意的是Java和PHP都是模式在前,待匹配内容在后
<?php
$content = "KHUFU is my lover";
$pattern = "^KHUFU.*";
$isMatch = preg_match($pattern,$content);
//isMatch是布尔值,如果匹配则返回true,否则返回false,利用isMatch进行后续操作
……
……
……
?>
3.Javascript
在JavaScript中,可以通过RegExp对象的test()方法来知道模式和内容是否匹配
<script>
//和上面的例子类似
var pattern=new RegExp("Khufu");
var content = "Khufu is my lover"
var isMatch = pattern.test(content);
//isMatch是布尔值,如果匹配则返回true,否则返回false,利用isMatch进行后续操作
……
……
……
</script>
当然,在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。前者常用于查找匹配,后者常用于替换
search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
//search()方法
<script>
function myFunction() {
var content = "khufu is my lover";
//匹配模式,i是修饰符,表示不区分大小写,两个/之间的就是你想替换的字符串模式,里面你可以写你需要的正则表达式
var pattern = /khufu/i ;
// n表示的是khufu在"khufu is my lover"出现的位置索引,本例中n=0(起始位置为0),如果不存在匹配的子串,那么n=-1。
var n =content.search(content);
……
……
……
}
</script>
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
//replace()方法
<script>
function myFunction() {
//一开始内容为“khufu is my lover”
var oldcontent = "khufu is my lover";
//匹配模式,i是修饰符,表示不区分大小写,两个/之间的就是你想替换的字符串模式,里面你可以写你需要的正则表达式
var pattern = /khufu/i ;
//你要想的替换部分的替代字符串
var replaceStr = "Banana";
//现在内容为“Banana is my lover”
oldcontent = oldcontent.replace(pattern,replaceStr);
//当然,你也可以重新定义一个字符串来接受操作后的结果而不去改变oldcont。
……
……
……
}
</script>