我需要写一个正则表达式来匹配这样的一个字符
[内容](网址)
其实就是markdown的链接的写法,我想用java解析这个内容,但是不知道怎么写,希望大家帮忙一下
这种简单的事交给grep,awk,sed可能一样就搞定了。
grep -P "\[\S+\].*?\(\S+\)" input.txt
简单的命令多学习下shell吧。
推荐看看书:mastering regular expression 3rd edition
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExpDemo {
public static void main(String[] args) {
String[] data = {
"[Google](http://www.google.com)",
"[Facebook](http://www.facebook.com)",
"[World Wide Web Consortium (W3C)](http://www.w3.org)"
};
Pattern pattern = Pattern.compile("\\[(.+?)\\]\\((\\S+?)\\)", Pattern.UNICODE_CASE);
Matcher matcher = null;
for (String str: data) {
matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(String.format("Name: %s , URL: %s", matcher.group(1), matcher.group(2)));
}
}
}
}
OUTPUT:
Name: Google , URL: http://www.google.com
Name: Facebook , URL: http://www.facebook.com
Name: World Wide Web Consortium (W3C) , URL: http://www.w3.org