目录:
- 1、正则表达式如何匹配+号?
- 2、正则表达式匹配指定中文字符串
- 3、正则表达式:匹配中间有特定字符串字符串
- 4、正则表达式怎么匹配字符串中最后一串数字?
- 5、正则表达式如何匹配字符串中的所有()之间的字符串。
正则表达式如何匹配+号?
使用:\+
其中”\“是转义字符,因为+是正则表示式中的特殊符号,所以需要使用”\“进行转义。
特殊字符
1、+
匹配前面的子表达式一次或多次。要匹配 + 字符,使用 \+。
2、\
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
3、|
指明两项之间的一个选择。要匹配 |,使用 \|。
扩展资料
定位符
1、^
匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。
2、$
匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。
3、\b
匹配一个单词边界,即字与空格间的位置。
4、\B
非单词边界匹配。
正则表达式匹配指定中文字符串
public void ShowStructure()
{
//要匹配的字符串
string text = "早上好aaa您好bbb大家好ddd……";
//正则表达式
string pattern = @"[\u4e00-\u9fff]+";
Regex r = new Regex(pattern);
//使用正则表达式匹配字符串,仅返回一次匹配结果
Match m = r.Match(text);
while (m.Success)
{
//显示匹配开始处的索引值和匹配到的值
System.Console.WriteLine("Match=[" + m + "]");
CaptureCollection cc = m.Captures;
foreach (Capture c in cc)
{
Console.WriteLine("\tCapture=[" + c + "]");
}
for (int i = 0; i m.Groups.Count; i++)
{
Group group = m.Groups[i];
System.Console.WriteLine("\t\tGroups[{0}]=[{1}]", i, group);
for (int j = 0; j group.Captures.Count; j++)
{
Capture capture = group.Captures[j];
Console.WriteLine("\t\t\tCaptures[{0}]=[{1}]", j, capture);
}
}
//进行下一次匹配.
m = m.NextMatch();
}
}
正则表达式:匹配中间有特定字符串字符串
^.*\[2014\].*$
只要含有[2014],字符串就会验证通过 ,中括号是正则的元字符,需要用\转义
前后的XXXX是任意字符,没有限制,因此只要含有[2014],整个单行的字符串会被匹配
正则表达式怎么匹配字符串中最后一串数字?
1、创建java类,TestRegexp
2、编写java代码,
String regex = "[0-9]+(?=[^0-9]*$)";
Pattern p = Pattern.compile(regex);
java.util.regex.Matcher m = p.matcher("1a2b3c4d56789abcde");
3、选择Run AS -- Java application,
4、执行java代码,产生结果,匹配到字符串中最后一串数字,
正则表达式如何匹配字符串中的所有()之间的字符串。
是可以的
比如“.*?name.*?”就可以匹配找出所有含有"name"的字符串,就像mysql查询用"where
..
like
'%name%'"一样的。并且正则可以更灵活,如果你写的".*?name\d{2}.*?",那么能找出像含有"name12","name09"这种name后至少跟2位数字的。总之,正则可以实现模糊查询,不过如果你的需求不是这么灵活匹配,那么就用普通字符串处理函数就可以了。
评论前必须登录!
注册