普通字符
字符说明[ABC]匹配 […] 中的所有字符,例如 [aeiou] 匹配字符串 “google runoob taobao” 中所有的 e o u a 字母。[^ABC]匹配除了 […] 中字符的所有字符,例如 [^aeiou] 匹配字符串 “google runoob taobao” 中除了 e o u a 字母的所有字母。[A-Z][A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。.匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。[\s\S]匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,包括换行。\w匹配字母、数字、下划线。等价于 [A-Za-z0-9_]非打印字符 特殊字符 限定符 * 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。 定位符
选择 用圆括号 ()将所有选择项括起来,相邻的选择项之间用 | 分隔。 () 表示捕获分组,() 会把每个分组里的匹配的值保存起来, 多个匹配值可以通过数字 n 来查看(n 是一个数字,表示第 n 个捕获组的内容)。
java实现
package testa; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.Scanner; public class regexttest { public static void main(String args[]) { Pattern pattern = Pattern.compile( "^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"); Scanner in = new Scanner(System.in); String url = in.next(); Matcher matcher=pattern.matcher(url); boolean re=matcher.matches(); System.out.println(re); } }