初步了解正则表达式
开发工具与关键技术:Visual Studio 2015
作者:Mr_恺
撰写时间:2019.05.5
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式 通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作(但是写 法和支持程度上有所不同)。
概念:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一 个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
作用:正则表达式主要用来验证、搜索和替换
在C#使用的第一种写法:
声明一串字符串:
String str = “<img οnlοad=\”AutoResizeImage(200,200,this)\”src=\”Document/Title/Temp
/2017-10-114c5.png\”>”;
先实例化Regex
Regex regex =new Regex(“onload.+?(?=scr)”);
1、IsMatch:指定的正则表达式在指定的输入字符串中是否找到了匹配项。
如果正则表达式找到匹配项,则为 true;否则,为 false。
bool blRG = regex.IsMatch(str);
2、Match:指定的正则表达式的第一个匹配项
返回一个包含有关匹配的信息的对象。
Match match = regex.Match(str);
string value = match.Value; value:返回结构通过匹配捕获的子字符串
3、 MatchCollection表示通过以迭代方式将正则表达式模式
//应用于输入字符串所找到的成功匹配的集合
MatchCollection matchCol = regex.Matches(str);
for (int i = 0; i < matchCol.Count; i++)//通过循环获取每一个匹配对象
{
Match ma = matchCol[i];
string value1 = ma.Value; value:返回结构通过匹配捕获的子字符串
}
在C#使用的第二种写法:
bool blRG1 = Regex.IsMatch(str, “(?<=Document/Title/Temp/).+?(?=”)");
Match match1= Regex.Match(str,"(?<=Document/Title/Temp/).+?(?=")");
MatchCollection matchCol1=Regex.Matches(str,"(?<=Document/Title/Temp/).+?(?=")");
for (int i = 0; i < matchCol1.Count; i++)通过循环获取每一个匹配对象
{
Match ma = matchCol1[i];
string value1 = ma.Value;
}
Replace:替换与指定正则表达式匹配的所有字符串
string str2 =Regex.Replace(str, "onload.+?(?=src)","");
在JavaScript的正则表达式
1.1 修饰符
修饰符用于执行区分大小写和全局匹配:
修饰符 描述
I (ignore)执行对大小写不敏感的匹配。
g (global)执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m (multiple)执行多行匹配。
1.2 RegExp 对象方法
方法 描述
compile 编译正则表达式。
exec 检索字符串中指定的值。返回找到的值,并确定其位置。
test 检索字符串中指定的值。返回 true 或 false。
1.3支持正则表达式的 String 对象的方法
方法 描述
search 检索与正则表达式相匹配的值。
match 找到一个或多个正则表达式的匹配。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。
反义:
位置指定和负向位置指定: