四川智能网站建设制作,长春火车站照片,网络营销论文总结,网站建设 企业文化正则表达式是一种可以应用于文本#xff08;Java中的String#xff09;的模式。 Java提供了java.util.regex包#xff0c;用于与正则表达式进行模式匹配。 Java正则表达式与Perl编程语言非常相似#xff0c;并且非常易于学习。 正则表达式匹配文本#xff08;或文本的一部… 正则表达式是一种可以应用于文本Java中的String的模式。 Java提供了java.util.regex包用于与正则表达式进行模式匹配。 Java正则表达式与Perl编程语言非常相似并且非常易于学习。 正则表达式匹配文本或文本的一部分或者不匹配。 *如果正则表达式匹配文本的一部分那么我们可以找出它是哪一部分。 **如果正则表达式复杂那么我们可以轻松地找出正则表达式的哪一部分与文本的哪一部分匹配。 第一个例子 正则表达式“ [az] ”与文本中的所有小写字母匹配。 [az]表示从a到z的任何字符包括表示“一个或多个”。 假设我们提供了一个字符串“代码2学习Java教程”。 在Java中如何做 首先您必须编译模式 导入java.util.regex。*; 模式p Pattern.compile“ [az] ”; 接下来您必须通过向模式发送消息来为文本创建匹配器 Matcher m p.matcher“代码2学习Java教程” 注意 Pattern和Matcher都没有公共构造函数我们通过使用Pattern类中的方法来创建它。 模式类 模式对象是正则表达式的编译表示。 Pattern类不提供公共构造函数。 要创建模式必须首先调用其公共静态编译方法之一然后再返回Pattern对象。 这些方法接受正则表达式作为第一个参数。 Matcher类 Matcher对象是解释模式并针对输入字符串执行匹配操作的引擎。 与Pattern类一样Matcher没有定义公共构造函数。 您可以通过在Pattern对象上调用matcher方法来获得Matcher对象。 完成上述步骤后现在有了匹配器m 我们可以检查是否找到了匹配项如果匹配则从哪个索引位置开始等等。 如果模式与整个字符串匹配则m.matches返回true否则返回false。 如果模式在字符串开头匹配则m.lookingAt返回true否则返回false 。 如果pattern与文本的任何部分匹配则m.find返回true 。 寻找匹配的东西 匹配成功后 m.start将返回匹配的第一个字符的索引而m.end将返回匹配的最后一个字符的索引再加上一个。 如果未尝试匹配或者匹配失败则m.start和m.end将抛出IllegalStateException –这是一个RuntimeException因此您不必捕获它 m.end返回匹配的最后一个字符的索引似乎很奇怪但这正是大多数String方法所需要的 –例如“ 现在是时间 ” .substringm.start m.end 将返回完全匹配的子字符串。 Java程序 import java.util.regex.*;public class RegexTest {public static void main(String args[]) {String pattern [a-z];String text code 2 learn java tutorial;Pattern p Pattern.compile(pattern);Matcher m p.matcher(text);while (m.find()) {System.out.print(text.substring(m.start(), m.end()) *);}}
} 输出 代码*学习* java *教程*。 附加方法 如果m是一个匹配器则 – m.replaceFirst replacement 返回一个新的String其中与模式匹配的第一个子字符串已被替换 – m.replaceAllreplace 返回一个新的String其中模式匹配的每个子字符串均已替换为replace – m.find startIndex 从指定的索引开始查找下一个模式匹配 – m.reset重置此匹配器 – m.reset newText 重置此匹配器并为其提供新文本以进行检查可以是StringStringBuffer或CharBuffer 正则表达式语法 下表列出了Java中可用的所有正则表达式元字符语法 子表达 火柴 ^ 匹配行首。 $ 匹配行尾。 。 匹配除换行符以外的任何单个字符。 使用m选项还可以使其与换行符匹配。 […] 匹配括号中的任何单个字符。 [^…] 匹配任何不在方括号中的单个字符 \一个 整个字符串的开头 \ z 整个字符串的结尾 \ Z 整个字符串的结尾但允许的最后一行终止符除外。 回覆* 匹配0个或多个出现的前一个表达式。 重新 匹配1个或多个前一个 回覆 匹配0或1个出现的前一个表达式。 重新{n} 精确匹配前一个表达式的n次出现。 re {n} 匹配n个或多个出现的前一个表达式。 re {nm} 至少匹配n个最多匹配m个先前的表达式。 a | b 匹配a或b。 回覆 对正则表达式进行分组并记住匹配的文本。 回覆 对正则表达式进行分组而无需记住匹配的文本。 重新 匹配独立模式而无需回溯。 \ w 匹配单词字符。 \ W 匹配非单词字符。 \ s 匹配空格。 等效于[\ t \ n \ r \ f]。 \ S 匹配非空格。 \ d 匹配数字。 相当于[0-9]。 \ D 匹配非数字。 \一个 匹配字符串的开头。 \ Z 匹配字符串的结尾。 如果存在换行符则匹配换行符。 \ z 匹配字符串的结尾。 \G 比赛结束点。 \ n 向后引用捕获组号“ n” \ b 在方括号外时匹配单词边界。 放在方括号内时匹配退格键0x08。 \ B 匹配非单词边界。 \ n\ t等 匹配换行符回车符制表符等。 \ Q 转义引号所有字符直到\ E \ E 结束语以\ Q开头 参考来自我们JCG合作伙伴的 Java正则表达式 代码2学习博客中的Farhan Khwaja。 翻译自: https://www.javacodegeeks.com/2012/02/regular-expressions-in-java-soft.html