当前位置: 首页 > news >正文

定制版软件seo网站优化推广怎么样

定制版软件,seo网站优化推广怎么样,百度搜索风云榜小说排行榜,html5网站后台怎么做正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言#xff0c;但是在每种语言中有细微的差别。 Java正则表达式和Perl的是最为相似的。 java.util.regex包主要包括以下三个类#xff1a; Pattern类#xff1a;…正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言但是在每种语言中有细微的差别。 Java正则表达式和Perl的是最为相似的。 java.util.regex包主要包括以下三个类 Pattern类 pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个Pattern对象你必须首先调用其公共静态编译方法它返回一个Pattern对象。该方法接受一个正则表达式作为它的第一个参数。 Matcher类 Matcher对象是对输入字符串进行解释和匹配操作的引擎。与Pattern类一样Matcher也没有公共构造方法。你需要调用Pattern对象的matcher方法来获得一个Matcher对象。 PatternSyntaxException PatternSyntaxException是一个非强制异常类它表示一个正则表达式模式中的语法错误。 捕获组 捕获组是把多个字符当一个单独单元进行处理的方法它通过对括号内的字符分组来创建。 例如正则表达式(dog) 创建了单一分组组里包含do和g。 捕获组是通过从左至右计算其开括号来编号。例如在表达式ABC有四个这样的组 ((A)(B(C)))(A)(B(C))(C) 可以通过调用matcher对象的groupCount方法来查看表达式有多少个分组。groupCount方法返回一个int值表示matcher对象当前有多个捕获组。 还有一个特殊的组组0它总是代表整个表达式。该组不包括在groupCount的返回值中。 实例 下面的例子说明如何从一个给定的字符串中找到数字串 import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexMatches {public static void main( String args[] ){// 按指定模式在字符串查找String line This order was placed for QT3000! OK?;String pattern (.*)(\\d)(.*);// 创建 Pattern 对象Pattern r Pattern.compile(pattern);// 现在创建 matcher 对象Matcher m r.matcher(line);if (m.find( )) {System.out.println(Found value: m.group(0) );System.out.println(Found value: m.group(1) );System.out.println(Found value: m.group(2) );} else {System.out.println(NO MATCH);}} }以上实例编译运行结果如下 Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT300 Found value: 0正则表达式语法 字符 说明 \ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如n匹配字符n。\n匹配换行符。序列\\匹配\\(匹配(。 ^ 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性^ 还会与\n或\r之后的位置匹配。 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性$ 还会与\n或\r之前的位置匹配。 * 零次或多次匹配前面的字符或子表达式。例如zo* 匹配z和zoo。* 等效于 {0,}。 一次或多次匹配前面的字符或子表达式。例如zo与zo和zoo匹配但与z不匹配。 等效于 {1,}。 ? 零次或一次匹配前面的字符或子表达式。例如do(es)?匹配do或does中的do。? 等效于 {0,1}。 {n} n 是非负整数。正好匹配 n 次。例如o{2}与Bob中的o不匹配但与food中的两个o匹配。 {n,} n 是非负整数。至少匹配 n 次。例如o{2,}不匹配Bob中的o而匹配foooood中的所有 o。o{1,}等效于o。o{0,}等效于o*。 {n,m} M 和 n 是非负整数其中 n  m。匹配至少 n 次至多 m 次。例如o{1,3}匹配fooooood中的头三个 o。o{0,1} 等效于 o?。注意您不能将空格插入逗号和数字之间。 ? 当此字符紧随任何其他限定符*、、?、{n}、{n,}、{n,m}之后时匹配模式是非贪心的。非贪心的模式匹配搜索到的、尽可能短的字符串而默认的贪心的模式匹配搜索到的、尽可能长的字符串。例如在字符串oooo中o?只匹配单个o而o匹配所有o。 . 匹配除\r\n之外的任何单个字符。若要匹配包括\r\n在内的任意字符请使用诸如[\s\S]之类的模式。 (pattern) 匹配 pattern 并捕获该匹配的子表达式。可以使用 $0…$9 属性从结果匹配集合中检索捕获的匹配。若要匹配括号字符 ( )请使用\(或者\)。 (?:pattern) 匹配 pattern 但不捕获该匹配的子表达式即它是一个非捕获匹配不存储供以后使用的匹配。这对于用or字符 (|) 组合模式部件的情况很有用。例如industr(?:y|ies) 是比 industry|industries 更经济的表达式。 (?pattern) 执行正向预测先行搜索的子表达式该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配即不能捕获供以后使用的匹配。例如Windows (?95|98|NT|2000) 匹配Windows 2000中的Windows但不匹配Windows 3.1中的Windows。预测先行不占用字符即发生匹配后下一匹配的搜索紧随上一匹配之后而不是在组成预测先行的字符后。 (?!pattern) 执行反向预测先行搜索的子表达式该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配即不能捕获供以后使用的匹配。例如Windows (?!95|98|NT|2000) 匹配Windows 3.1中的 Windows但不匹配Windows 2000中的Windows。预测先行不占用字符即发生匹配后下一匹配的搜索紧随上一匹配之后而不是在组成预测先行的字符后。 x|y 匹配 x 或 y。例如z|food 匹配z或food。(z|f)ood 匹配zood或food。 [xyz] 字符集。匹配包含的任一字符。例如[abc]匹配plain中的a。 [^xyz] 反向字符集。匹配未包含的任何字符。例如[^abc]匹配plain中plin。 [a-z] 字符范围。匹配指定范围内的任何字符。例如[a-z]匹配a到z范围内的任何小写字母。 [^a-z] 反向范围字符。匹配不在指定的范围内的任何字符。例如[^a-z]匹配任何不在a到z范围内的任何字符。 \b 匹配一个字边界即字与空格间的位置。例如er\b匹配never中的er但不匹配verb中的er。 \B 非字边界匹配。er\B匹配verb中的er但不匹配never中的er。 \cx 匹配 x 指示的控制字符。例如\cM 匹配 Control-M 或回车符。x 的值必须在 A-Z 或 a-z 之间。如果不是这样则假定 c 就是c字符本身。 \d 数字字符匹配。等效于 [0-9]。 \D 非数字字符匹配。等效于 [^0-9]。 \f 换页符匹配。等效于 \x0c 和 \cL。 \n 换行符匹配。等效于 \x0a 和 \cJ。 \r 匹配一个回车符。等效于 \x0d 和 \cM。 \s 匹配任何空白字符包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。 \S 匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效。 \t 制表符匹配。与 \x09 和 \cI 等效。 \v 垂直制表符匹配。与 \x0b 和 \cK 等效。 \w 匹配任何字类字符包括下划线。与[A-Za-z0-9_]等效。 \W 与任何非单词字符匹配。与[^A-Za-z0-9_]等效。 \xn 匹配 n此处的 n 是一个十六进制转义码。十六进制转义码必须正好是两位数长。例如\x41匹配A。\x041与\x041等效。允许在正则表达式中使用 ASCII 代码。 \num 匹配 num此处的 num 是一个正整数。到捕获匹配的反向引用。例如(.)\1匹配两个连续的相同字符。 \n 标识一个八进制转义码或反向引用。如果 \n 前面至少有 n 个捕获子表达式那么 n 是反向引用。否则如果 n 是八进制数 (0-7)那么 n 是八进制转义码。 \nm 标识一个八进制转义码或反向引用。如果 \nm 前面至少有 nm 个捕获子表达式那么 nm 是反向引用。如果 \nm 前面至少有 n 个捕获则 n 是反向引用后面跟有字符 m。如果两种前面的情况都不存在则 \nm 匹配八进制值 nm其中 n 和 m 是八进制数字 (0-7)。 \nml 当 n 是八进制数 (0-3)m 和 l 是八进制数 (0-7) 时匹配八进制转义码 nml。 \un 匹配 n其中 n 是以四位十六进制数表示的 Unicode 字符。例如\u00A9 匹配版权符号 (©)。 Matcher类的方法 索引方法 索引方法提供了有用的索引值精确表明输入字符串中在哪能找到匹配 序号方法及说明1public int start() 返回以前匹配的初始索引。2public int start(int group)  返回在以前的匹配操作期间由给定组所捕获的子序列的初始索引3public int end() 返回最后匹配字符之后的偏移量。4public int end(int group) 返回在以前的匹配操作期间由给定组所捕获子序列的最后字符之后的偏移量。 研究方法 研究方法用来检查输入字符串并返回一个布尔值表示是否找到该模式 序号方法及说明1public boolean lookingAt()  尝试将从区域开头开始的输入序列与该模式匹配。2public boolean find() 尝试查找与该模式匹配的输入序列的下一个子序列。3public boolean find(int start 重置此匹配器然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列。4public boolean matches() 尝试将整个区域与模式匹配。 替换方法 替换方法是替换输入字符串里文本的方法 序号方法及说明1public Matcher appendReplacement(StringBuffer sb, String replacement) 实现非终端添加和替换步骤。2public StringBuffer appendTail(StringBuffer sb) 实现终端添加和替换步骤。3public String replaceAll(String replacement)  替换模式与给定替换字符串相匹配的输入序列的每个子序列。4public String replaceFirst(String replacement)  替换模式与给定替换字符串匹配的输入序列的第一个子序列。5public static String quoteReplacement(String s) 返回指定字符串的字面替换字符串。这个方法返回一个字符串就像传递给Matcher类的appendReplacement 方法一个字面字符串一样工作。 start 和end 方法 下面是一个对单词cat出现在输入字符串中出现次数进行计数的例子 import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexMatches {private static final String REGEX \\bcat\\b;private static final String INPUT cat cat cat cattie cat;public static void main( String args[] ){Pattern p Pattern.compile(REGEX);Matcher m p.matcher(INPUT); // 获取 matcher 对象int count 0;while(m.find()) {count;System.out.println(Match number count);System.out.println(start(): m.start());System.out.println(end(): m.end());}} }以上实例编译运行结果如下 Match number 1 start(): 0 end(): 3 Match number 2 start(): 4 end(): 7 Match number 3 start(): 8 end(): 11 Match number 4 start(): 19 end(): 22可以看到这个例子是使用单词边界以确保字母 c a t 并非仅是一个较长的词的子串。它也提供了一些关于输入字符串中匹配发生位置的有用信息。 Start方法返回在以前的匹配操作期间由给定组所捕获的子序列的初始索引end方法最后一个匹配字符的索引加1。 matches 和lookingAt 方法 matches 和lookingAt 方法都用来尝试匹配一个输入序列模式。它们的不同是matches要求整个序列都匹配而lookingAt 不要求。 这两个方法经常在输入字符串的开始使用。 我们通过下面这个例子来解释这个功能 import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexMatches {private static final String REGEX foo;private static final String INPUT fooooooooooooooooo;private static Pattern pattern;private static Matcher matcher;public static void main( String args[] ){pattern Pattern.compile(REGEX);matcher pattern.matcher(INPUT);System.out.println(Current REGEX is: REGEX);System.out.println(Current INPUT is: INPUT);System.out.println(lookingAt(): matcher.lookingAt());System.out.println(matches(): matcher.matches());} }以上实例编译运行结果如下 Current REGEX is: foo Current INPUT is: fooooooooooooooooo lookingAt(): true matches(): falsereplaceFirst 和replaceAll 方法 replaceFirst 和replaceAll 方法用来替换匹配正则表达式的文本。不同的是replaceFirst 替换首次匹配replaceAll 替换所有匹配。 下面的例子来解释这个功能 import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexMatches {private static String REGEX dog;private static String INPUT The dog says meow. All dogs say meow.;private static String REPLACE cat;public static void main(String[] args) {Pattern p Pattern.compile(REGEX);// get a matcher objectMatcher m p.matcher(INPUT); INPUT m.replaceAll(REPLACE);System.out.println(INPUT);} }以上实例编译运行结果如下 The cat says meow. All cats say meow.appendReplacement 和 appendTail 方法 Matcher 类也提供了appendReplacement 和appendTail 方法用于文本替换 看下面的例子来解释这个功能 import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexMatches {private static String REGEX a*b;private static String INPUT aabfooaabfooabfoob;private static String REPLACE -;public static void main(String[] args) {Pattern p Pattern.compile(REGEX);// 获取 matcher 对象Matcher m p.matcher(INPUT);StringBuffer sb new StringBuffer();while(m.find()){m.appendReplacement(sb,REPLACE);}m.appendTail(sb);System.out.println(sb.toString());} }以上实例编译运行结果如下 -foo-foo-foo-PatternSyntaxException 类的方法 PatternSyntaxException 是一个非强制异常类它指示一个正则表达式模式中的语法错误。 PatternSyntaxException 类提供了下面的方法来帮助我们查看发生了什么错误。 序号方法及说明1public String getDescription() 获取错误的描述。2public int getIndex()  获取错误的索引。3public String getPattern() 获取错误的正则表达式模式。4public String getMessage() 返回多行字符串包含语法错误及其索引的描述、错误的正则表达式模式和模式中错误索引的可视化指示。
http://www.w-s-a.com/news/108218/

相关文章:

  • 网站建设主要研究内容用哪个程序做网站收录好
  • 网站建设如何开单装修设计图免费
  • 做内容网站赚钱吗seo推广具体做什么
  • 连山区网站建设seo简历
  • 自助建站系统官方版太仓高端网站制作
  • 怎样只做自己的网站建设银行唐山分行网站
  • 咸阳鑫承网站建设软件开发公司网站模板
  • 百度怎么免费做网站网站建设大作业有代码
  • 小说素材网站设计素材网站特点
  • 如何建设一个好的网站WordPress主题设置数据库
  • 网站被模仿十堰网站制作公司
  • 怎么样做免费网站个人网站备案幕布
  • 做ppt的动图下载哪些网站制作一个网站需要多少时间
  • 公司网站开发制作备案中的网站
  • 怎么看网站的收录网站开发先前台和后台
  • 合肥市做网站多少钱wordpress网站布置视频
  • 中国建设人才网信息网站软件外包公司好不好
  • 网站建设与管理 市场分析上海网站建设公司排名
  • 怎么将公司网站设成首页网址关键词查询网站
  • 怎么用ps做网站ui邱县专业做网站
  • 国开行网站毕业申请怎么做大连旅顺口旅游攻略
  • 鲜花店网站源码成都专做婚介网站的公司
  • 合肥企业网站建设工哈尔滨公告
  • 华强北 做网站互联网服务平台入口
  • vi设计案例网站微信导航网站 dedecms
  • 青浦区做网站设计图片手绘图片
  • 做网站的基本功制作网站公司推荐
  • 阿里云快速建站教程个人网站 费用
  • 广东购物网站建设微信公众号制作模板免费
  • 阿里国际站韩语网站怎么做让移动网站