1. 实例

1.取出@后的信息

java:

String str = "@liurui 你好1 @zhangiaofeng 你好2 @linjie 你好3";
Pattern p = Pattern.compile("@(?<username>\\w+\\s)(?<msg>[\\w\\W][^@]+)");
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group("username")+":"+m.group("msg"));
}

 

JavaScript:

var str="@shenyi 你好 @ddd hello";

 

var pattern=/[@](\w+\s)(.[^@]+)/g;

//var result=pattern.exec(str);

 

while(result=pattern.exec(str))

{

alert(result[1]);

alert(result[2]);

}

 

  1. 知识清单

[A-Z]: 代表大写字母A到Z

同样的[A-E] 代表大写字母A到E

实际上[A-E] 等价于[ABCDE]

[A-Ea-d] ==[ABCDEabcd]

[^A-E]: 代表 不在大写字母A-E范围内的字符

\w : 代表匹配包括下划线的任何一个单词字符。等价于"[A-Za-z0-9_]"。

\W: 正好和\w相反。代表非\w的一个字符

小括号: (),往往用来分组,提取我们需要匹配的字符

中括号:[] ,往往用来表示匹配字符范围 .配合其他正则特性一起使用能实现很强大的功能

.: 匹配除"\r\n"之外的任何单个字符。要匹配包括"\r\n"在内的任何字符,请使用像"[\s\S]"的模式。

 

 

posted on 2016-03-18 13:51  fatsnake  阅读(241)  评论(0编辑  收藏  举报