博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式学习笔记(四)——位置匹配
阅读量:6584 次
发布时间:2019-06-24

本文共 1727 字,大约阅读时间需要 5 分钟。

1.1单词边界

限定符\b指定单词边界,b是英文boundary(边界)的首字母,例如

文本:The catscattered his food all over the room.

正则表达式:cat

结果: The cat scatteredhis food all over the room.

正则表达式:\bcat\b

结果: The cat scattered his food all overthe room.

 

如果想不匹配一个单词的边界(),使用\B ,例如下面的例子匹配多余的空格

文本: please enter the nine-digit id as it appears on your color – cpdedpass-key

正则表达式:\B-\B

结果:please enter the nine-digit id as it appears on your color - cpdedpass-key

分析:\B-\B

将匹配一个前后都不是单词边界的连字符(因为空格和连字符都不是字母数字或下划线)。只有color – cpded中的连字符可以与之匹配

1.2字符串边界

1.2.1匹配字符串开头

我们知道使用^可以用来取非,其实他还有匹配一个字符串的开头的作用。

当^出现在一个字符集合中(被放到[和]之间)并且紧跟在左方括号[的后面是,才能发挥“求非”作用。

如果是在一个字符集合的外面并且位于一个模式的开头,^将匹配字符串的开头。例如,下面的测试可以检查一个文档是否为xml文档(xml文档必须是<?xmlversion="1.0"?>类型,而且必须放在开头)

文本

this is not a xml document, real not a xmldocument

<?xml version="1.0"ecoding=”utf-8” ?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML1.1//EN" " >
<wml>
<head>
<access/>

正则表达式:<\?xml.*\?>

结果

this is not a xml document, real not a xmldocument

<?xml version="1.0"ecoding=”utf-8” ?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML1.1//EN" " >
<wml>
<head>
<access/>

我们就以为这是xml文件了,其实这不是xml文件,xml文件必须是在开头有上述标示才行

正确的正则表达式:^\s*<\?xml.*?\?>

 

 

 1.2.2 匹配字符串结尾

使用$即可

1.2.3  分行匹配

(?m)说明是分行模式,必须出现在整个模式的最前面,下例将会找出所有的注释文章

文本:

String author()default "aaa";

 //aaaaaaa

 int[]arrayAttr() default {1};

 //bbbbbbbb
 MetaAnnotation annotationAttr() default@MetaAnnotation("");
 //ccccccc
 Class<PersonChiness> classType()default PersonChiness.class;

正则表达式:(?m)^\s*//.*$

结果:Stringauthor() default "aaa";

 //aaaaaaa

 int[]arrayAttr() default {1};

 //bbbbbbbb
 MetaAnnotation annotationAttr() default@MetaAnnotation("");
 //ccccccc
 Class<PersonChiness> classType()default PersonChiness.class;
警告:有许多正则表达式不支持(?m)

 

转载于:https://www.cnblogs.com/thiaoqueen/p/7675234.html

你可能感兴趣的文章
阿里云负载均衡服务
查看>>
小命令 sysdig
查看>>
IT十八掌作业_java基础第五天_静态代码块、类的继承和接口
查看>>
流程控制-for序列、流程控制-for字典
查看>>
Easy APNs Provider的使用
查看>>
多个AsynceTask无法同时运行的现象分析
查看>>
搭建mysql集群
查看>>
职场生存|与努力同样重要的是,学会做好这 6 点!
查看>>
Gson工具包使用
查看>>
有一个系统修复处于挂起状态,需要重新启动才能完成该修复
查看>>
Ubuntu上安装bind9
查看>>
访问共享提示“服务器存储空间不足,无法处理此命令。”
查看>>
3月18日学习笔记
查看>>
Linux中目录权限之小见
查看>>
maven的tomcat插件设置
查看>>
C#读写XML文件
查看>>
ORACLE 字符串操作
查看>>
NAT的理解与配置步骤
查看>>
diskpart修改盘符脚本
查看>>
Linux下解压rar格式压缩包
查看>>