爱生活 • 爱言情

正在播放相关视频:13.正则表达式语法讲解

正则表达式中^符号表达的意思

[-+.]意思就是-+.这三个字符其中任意一个。写在[]里面的情况下,可以不加 \\,加了也没事。[-.]意思是-.这两个字符中任意一个。这个正则表达式有些问题,如果这样写,没有.光有-也可以通过www.aiyanqing.com防采集请勿采集本网。

今天看到代码中有段代码觉得很奇怪,

建议你去看thinking in java第四版。那里面的第十三章字符串部分,对正则表达式讲解非常详细,别人给你回答,一时半会也说不清,因为那东西还是得自己去体会。

"[\u4e00-\u9fa5]" 在正则表达式中代表的是中文的意思

真正的研究好正则,其实没别的路,去看《精通正则表达式》,别的书都是白搭,这书是正则界的圣经,别被书的厚度吓倒,做为一个过来人,可以很负责任的告诉你,在你走通正则的那一天,你会发现,你的努力是

一开始看着,一脸懵逼,为啥把中文替换掉了,那还要这个方法有什么用?

以http://开始,忽略大小写 i 是忽略大小写

最后,自己写了一个方法测试了一下,

正则有贪婪和非贪婪模式,所以你的最后集合只会有这两种的数据,不会出现如:zobo,boco。关于java正则表达式的语法可以参考:java正则表达式语法详解及其使用代码实例 搜索\"正则\"的分享列表

才发现了猫腻,原来是正则表达式中这个“^”符号有猫腻,意思就是“非”的意思,所以在这段代码的意思就是,将不是中文的字符全部替换掉,也可以理解为,只匹配中文汉字,

正则表达式中可以使用ASCII编码。\\num 匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,“(.)\\1”匹配两个连续的相同字符。\\n 标识一个八进制转义值或一个向后引用。如果\\n之前至少n个获取的

然后在网上找了点资料,总结了一下

/^A/会匹配"An e"中的A,但是不会匹配"ab A"中的A,此时^A的意思是“匹配开头的A”,类似的有

/[(^\s+)(\s+$)]/g

(^cat)$

(^cat$)

^(cat)$

^(cat$)

/[^a-z\s]/会匹配"my 3 sisters"中的"3 ",此时^的意思是“非”,类似的有

[^a]表示“匹配除了a的任意字符”。

[^a-zA-Z0-9]表示“找到一个非字母也非数字的字符”。

经过对比,我发现了”^”这个字符在中括号”[]”中被使用的话就表示字符类的否定,如果不是的话就是表示限定开头。我这里说的是直接在”[]”中使用,不包括嵌套使用。

其实也就是说”[]”代表的是一个字符集,”^”只有在字符集中才是反向字符集的意思

版权声明:正则表达式中^符号表达的意思由代码君带你敲代码提供,版权归原作者所有。

================================================第14章 强大的正则表达式:RegExp================================================14.2.2 正则表达式的两个构成部分简写模式:var 正则对象:RegExp = /匹配模式/标志位构造函数模式:var 正则对象:RegExp = new RegExp(匹配模式,标志位)匹配模式就是正则表达式,标志位包括五个字母 gimsx14.3 正则表达式语法14.3.1 正则表达式中的文字符号普通文字和符号:A-Z a-z 0-9 以及不是元字符的其它符号输入Unicode字符时,同String一样,使用\uXXXX 元字符:三三二三个一(记忆口诀)三个括号:{[(三个匹配次数:*+? 星加问两个断言:^$ 定头定尾三个一:| 选择符 . 模糊匹配 \ 转义三个括号:{定义匹配次数[字符集(子模式三个匹配次数:* 匹配出现0次或多次+ 匹配出现至少1次或多次? 匹配出现0次最多1次两个断言:^ 在/后出现时为左端断言, /^$ 在/前出现时为右端断言, $/三个独立元字符:| 选择符,匹配时兼容匹配选择符两边的字符. 模糊匹配,可以代替任意一个字符\ 转义:转义的控制字符14.3.2 正则表达式中的字符集1.字符集的概念和最简单的字符集形式[字符集]字符集用中括号括起来Unicode字符请使用\uXXXX 四位十六进制Unicode代码输入如:/g[eo]t,分别匹配get和got,但不会匹配geot,因为字符集只能匹配一个字符2.连字符在字符集中的运用[字符-字符]如:[a-z][A-Z],就e69da5e887aae799bee5baa631333264656231是匹配英文字母字符集了3.取反符号在字符集中的运用[^字符集]添加取反符号后,匹配时将忽略字符集中的所有元素4.字符集中需要转义的特殊字符\转义符号常见要转义的字符有三类:1.字符串: 双引号" 单引号 ' 反斜杠 \2.正则表达式的源字符3.字符集中的: [\^-尽可能将会产生歧义的字符转义14.3.3 特殊的点号(.).号可以替代任意单个字符,作为正则表达式中的模糊匹配字符1.点号不匹配新行符(\n)多行字符的模糊匹配中,.号不能匹配\n换行符,要匹配换行符,必须在标志位中使用s2.尽量少使用点号“.”只在明确不会模糊匹配时出错的情况下才用.模糊匹配,点号匹配所有的Unicode字符。14.3.4 选择符| 对选择符两边的元素作任意匹配。使用|选择符时,尽可能使用括号将两边的操作数括起来,以方便区别。14.3.5 括号与分组() 圆括号将表达式的一部分括起来,就会将这部分定交成组,一旦命名了组,就可以通过“向后引用”来调用它。它所括起的部分一般用于:1.和选择符搭配,规定作用于选择符的范围,如/he(got|get)it/2.和限定符搭配使用,指定匹配的重复次数,如/(get)*/14.3.6 用正则表达式描述字符串的重复使用{}定义匹配的重复次数,跟在要重复的表达式或字符后面{最小出现次数[,最多出现次数]}还有常用的三个 非显式限定符*+? 星加问* 出现0次或多次 等同 {0,}+ 出现1次或多次 等同 {1,}? 出现0次或最多1次 等同 {0,1}14.3.7 注意正则表达式的贪婪性和懒惰性使用*+?{}的时候,正则表达式总是尽可能向右搜寻尽可能多的匹配结果,如果想禁止此贪婪性,可在操作符后加上 ?,迫使程序运行时使用懒惰模式,优先使用左边匹配的第一个结果。14.3.8 用正则表达式来定位断言:指定匹配发生的位置^匹配字符串起始的位置,一般跟在起始/后,组合成 /^$匹配字符串结尾的位置,一般跟在结束/前,组合成$/\b匹配字符边界\B匹配非字符边界字符边界指空格的位置,可跟在要匹配的表达式左边或右边14.3.9 正则表达式的5个标志位。g global全局匹配,尽可能匹配全部结果i ignoreCase不区分大小写匹配m multiline断言控制符,使用后 ^$两个断言符才能生效s dotall匹配换行符标志x extended令正则表达式支持空格,但编译时会自动忽略,增加可视的友好度14.3.10 正则表达式元字符优先级优先级顺序从高到低排列\转义符(),(?:),(?=),[]分级定义符号,字符集定义符号*,+,?,{n},{n,},{n,m}限定符^,$,\位置定义位置和顺序|选择符/*=======================================================2011年8月13日添加 零宽断言 的内容. 匹配除换行符以外的任意字符\w 匹配字母或数字或下划线\s 匹配任意的空白符\d 匹配数字\b 匹配单词的开始或结束^ 匹配字符串的开始$ 匹配字符串的结束[\u4e00-\u9fa5]{2,20} 匹配2-20个汉字* 重复零次或更多次+ 重复一次或更多次? 重复零次或一次{n} 重复n次{n,} 重复n次或更多次{n,m} 重复n到m次\W 匹配任意不是字母,数字,下划线的字符\S 匹配任意不是空白符的字符\D 匹配任意非数字的字符\B 匹配不是单词开头或结束的位置[^x] 匹配除了x以外的任意字符[^aeiou] 匹配除了aeiou这几个字母以外的任意字符(exp) 匹配exp,并捕获文本到自动命名的组里(?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号零宽断言(?=exp) 匹配exp前面的位置(?<=exp) 匹配exp后面的位置(?!exp) 匹配后面跟的不是exp的位置(?<!exp) 匹配前面不是exp的位置注释(?#comment) 这种类型的组不对正则表达式的处理产生任何影响,用于提供注释让人阅读=======================================================*/14.4 正则表达式与字符串的结合使用详解14.4.1 RegExp的exec()和test()test方法var RegExp对象:RegExp = /正则表达式/ 或 new RegExp(正则式,标志位)var String对象:String = 字符;RegExp对象.test(String对象)RegExp对象.exec(正则表达式):Arrayexec返回一个匹配后的数组14.4.3 String类的replace()与正则表达式向后引用()使用子表达式括起的表达式,可以在后边引用 ,使用\n n为索引 从1至99/\b([a-z]+) \1\b/gi 其中的\1就是引用前面第一个([a-z])可在处理函数中用 $n 来引用子模式此节部分略过 p24514.5 常用的正则表达式此节略 p246-p248================================================第15章 XML数据处理 ================================================一大堆理论15.4 创建XML对象15.4.1 使用构造函数创建XML对象var String对象:String = 字符串var XML对象:XML = new XML(String对象);trace(XML对象.属性)15.4.2 直接使用XML文本创建XML对象var XML对象:XML = <![CDATA[直接输入XML文本 或换行]]>或者使用变量的方式var String对象:String = 字符;var XML对象:XML = <{String对象}>变量使用{}括起来,其它的与XML普通输入无异15.5 使用运算符操作XML数据15.5.1 使用"."与"@" 直接访问、修改、创建和删除XML对象访问:var XML对象:XML = XML文本;trace(XML对象.节点名.子节点名)trace(XML对象.节点[索引])trace(XML对象.节点.@属性)trace(XML对象.节点.@属性[索引])15.5.2 使用"."与"@"直接修改XML对象注意:如果存在多个同级元素时,不能直接使用.和@修改,因为返回结果是XMLList对象XML对象.节点.子节点 = 值 //直接修改节点文本XML对象.节点.@属性 = 值 //直接修改属性值15.5.3 使用"."与"@"直接添加删除子元素和属性注意:如果存在多个同级元素时,不能直接使用.和@修改,因为返回结果是XMLList对象XML对象.节点.新节点名 = new XML(); //添加一个空白节点XML对象.节点.新节点名 = 字符串; //添加一个字符串节点XML对象.节点.@新属性名 = 值; //添加一个节点属性删除节点:delete XML对象.节点.元素[@属性]15.5.4 简单方便地搜索XML子元素和属性trace(XML对象.节点..子节点) //显示所有同级子节点trace(XML对象.节点.@*.toXMLString()); //显示所有同级节点中的所有属性值trace(XML对象.节点.(子节点 < 1000)); //显示节点中所有节点文本大于1000的子节点元素trace(XML对象.节点.(@属性 == 值)); //显示节点中属性等于值的节点15.5.5 使用正则表达式或自定义函数搜索XML子元素和属性自定义函数:XML对象.节点.(自定义函数(子节点));function 自定义函数(t:*):Boolean{t.length()if(t<100000) return true;teturn false;//自定义函数将根据子节点的数量执行多次//自定义函数返回值必须是Boolean}正则表达式:XML对象.节点.(子节点.match(正则表达式));15.6 用API实现的一些常用XML操作本节略p26415.7 XML的命名空间本节略p26515.8 XML对象与XMLlist对象本节略p268,http://linux.vbird.org/内容来自www.aiyanqing.com请勿采集。

相关视频

— 温馨提示 —

android浏览器点击下方“”分享

ios浏览器点击“”分享

— 温馨提示 —

android浏览器点击下方“”分享

ios浏览器点击“”分享

'); })();