正则表达式-Java实现-^开始位置、&结束位置、(?m)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了正则表达式-Java实现-^开始位置、&结束位置、(?m),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3100字,纯文字阅读大概需要5分钟。
内容图文
![正则表达式-Java实现-^开始位置、&结束位置、(?m)](/upload/InfoBanner/zyjiaocheng/838/b4cf1f3777e442e282924f78906cff27.jpg)
import java.util.regex.Pattern;
import java.util.regex.Matcher;
/*
字符串的边界匹配用的方法就是查找字符串是不是按照规定的模式开始和结束
^ 匹配字符串的开头位置,^\s* 表示字符串以零个或多个空白开头
$ 匹配字符串的结束位置
*/
public class StrBoundaryMatch{
public static void main(String[] args){
String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
" <wsdl:definitions targetNamespace=\"http://tips.cf\">" +
"xmlns:impl=\"http://tips.cf\" xmlns=\"http://tips.cf\""+
"xmlns:apachesoap=\"http://xml.apache.org/xml-soap\"";
//匹配 <?xml> 标签的正确性
// <\?xml.*\?>
Pattern p = Pattern.compile("<\\?xml.*\\?>");
Matcher m = p.matcher(str); //<\?xml.*\?>
System.out.println(p.pattern());
while (m.find()){
System.out.println(m.group());
}
//<?xml version="1.0" encoding="UTF-8" ?>
System.out.println();
String str2 = "This is bad, real bad!" +
"<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
" <wsdl:definitions targetNamespace=\"http://tips.cf\">" +
"xmlns:impl=\"http://tips.cf\" xmlns=\"http://tips.cf\""+
"xmlns:apachesoap=\"http://xml.apache.org/xml-soap\"";
//这段作为 .xml 文件内容时候是有问题的,"This is bad, real bad!" 应该作为注释
//此时进行模式匹配的时候,希望做到的是,xml 文件以 <?xml ?> 开头,其他开头的都是错误的
// ^\s*<\?xml.*\?>
p = Pattern.compile("^\\s*<\\?xml.*\\?>");
m = p.matcher(str2);
System.out.println(m.find()); //false
//此时对 str 进行模式匹配
m = p.matcher(str);
while (m.find()){ //true
System.out.println(m.group());
}
//<?xml version="1.0" encoding="UTF-8" ?>
//已经匹配到了合法的内容
System.out.println();
//一个 xml 文件的结尾一定是 </html>
// </[Hh][tT][mM][lL]>\s*$
String str3 = "</Html> ";
p = Pattern.compile("</[Hh][tT][mM][lL]>\\s*$");
m = p.matcher(str3);
while (m.find()){
System.out.println(m.group());
}
//</Html>
}
}
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.FileReader;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
/*
(?m) 分行匹配模式,必须放在整个模式的最前面,分行匹配模式使得正则表达式引擎吧分行符当作一个字符串分隔符
对待。此时在分行匹配模式下 ^ 不仅仅匹配正常的字符串开头,还将匹配分隔符(换行符)后面的开始位置,类
似的 $ 也不仅仅匹配正常字符串结尾,还将匹配分隔符(换行符)后面的结束位置
*/
public class EachLineMatch{
public static void main(String[] args){
StringBuffer strbuf = new StringBuffer("");
try{
BufferedReader read =
new BufferedReader(new FileReader("E:/java/正则表达式练习/RegularExpression/js.txt"));
String str = "";
while ((str = read.readLine()) != null){
strbuf.append(str + "\r\n");
}
}
catch (IOException ex){
ex.printStackTrace();
}
System.out.println(strbuf);
//匹配出所有的注释
// ^\s*//.*$ 也就是以 // 开头,任意字符结尾
Pattern p = Pattern.compile("(?m)^\\s*//.*$");
Matcher m = p.matcher(strbuf);
System.out.println(m.pattern()); // (?m)^\s*//.*$
while (m.find()){
System.out.println(m.group());
}
/*
//Make sure not empty
//Init
//Done
*/
}
}
js.txt
<script>
function doSpellcheck(from, field){
//Make sure not empty
if (field.value==''){
return false;
}
//Init
var windowName='spelleWindow';
var spellCheckURL='spell.cfm?formname=comment&fieldname='+field.name;
...
//Done
return false;
}
</script>
内容总结
以上是互联网集市为您收集整理的正则表达式-Java实现-^开始位置、&结束位置、(?m)全部内容,希望文章能够帮你解决正则表达式-Java实现-^开始位置、&结束位置、(?m)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。