正则表达式

java正则表达式 前后查找

我与影子孤独终老i 提交于 2020-05-05 01:32:22
假如我们有大量类似于下面的数据: 1.神要是公然去跟人作对,那是任何人都难以对付的。 (《荷马史诗》) 2.生存还是毁灭,这是一个值得思考的问题。 (《哈姆霄特》) 3.善良人在追求中纵然迷惘,却终将意识到有一条正途。(《浮士德》) 4.认识自己的无知是认识世界的最可靠的方法。 (《随笔集》) 5.你以为我贫穷、相貌平平就没有感情吗?我向你发誓,如果上帝赋予我财富和美貌,我会让你无法离开我,就像我现在无法离开你一样。虽然上帝没有这么做,可我们在精神上依然是平等的。(《简·爱》) 我们要做的事情是提取出其中的内容和书名,如1.神要是公然去跟人作对,那是任何人都难以对付的。 (《荷马史诗》)我们需要提取出类容“神要是公然去跟人作对,那是任何人都难以对付的。”和书名“荷马史诗”。我们该怎么做呢?下面就让我们用正则表达式来完成它吧。 import java.util.regex.Matcher; import java.util.regex.Pattern; public class LookAround { private static final String input ="1.神要是公然去跟人作对,那是任何人都难以对付的。 (《荷马史诗》)\n2.生存还是毁灭,这是一个值得思考的问题。 (《哈姆霄特》)\n3.善良人在追求中纵然迷惘,却终将意识到有一条正途。(《浮士德》)\n4

【PHP基础】preg_replace的各种用法吐槽解析大全

那年仲夏 提交于 2020-04-23 10:42:03
<?php $string='Abbb 12,2003'; $pattern='/(\w+) (\d+),(\d+)/i'; $replacement='${1}1,$1'; echo preg_replace($pattern,$replacement,$string).'<br>'; //输出 Abbb1,Abbb,如果把$replacement改为${1}1,$3的话,则输出Abbb1,2003 //如果把$replacement改成${1}333$1的话,则输出Abbb333,Abbb //通过比较,可以体会到${1}和$1以及纯数字之间的关系。 ?> <?php $string='The quick brown fox jumped over the lazy dog.'; $patterns=array(); $patterns[0]='/quick/'; $patterns[1]='/brown/'; $patterns[2]='/fox/'; $replacements=array(); $replacements[2]='bear'; $replacements[1]='black'; $replacements[0]='slow'; echo preg_replace($patterns,$replacements,$string).'<br>'; //输出

常用的正则表达式规则

最后都变了- 提交于 2020-04-10 07:45:23
正则表达式(regular expression)是一个描述字符模式的对象。使用正则表达式可以进行强大的模式匹配和文本检索与替换功能。 身份证正则: //身份证正则表达式(15位) isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/; //身份证正则表达式(18位) isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/; 身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$) 最新手机号码正则表达式: var tel = $("#telNo").val(); //获取手机号 var telReg = !!tel.match(/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/); //如果手机号码不能通过验证 if(telReg == false){ } 其他 提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? 提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+

正则表达式

人走茶凉 提交于 2020-04-08 02:13:47
基础 需要谨记的 3 个字母 \d 匹配数字 \w 匹配字母、数字、下划线 \s 匹配空白符(例如空格、换行符、制表符等) 大写表示匹配其相反的东西,如: \D 匹配非数字字符, \S 匹配非空白字符 常用的匹配字符 [0-9] 匹配在此区间的数字,同 \d [a-zA-Z] 匹配在此区间的字母,可以多个区间一起 [x.|9\\] 匹配在中括号内的字符,里面的都是普通字符没其他含义,除斜杠比较特殊需转义 [^a8] 匹配除中括号内字符之外的字符,和上面 3 个字母大写匹配其相反的东西一样的道理 hello 匹配常规字符串 ^hello 匹配行首的 hello hello $ 匹配行末的 hello hello|world 匹配 hello 或者 world (正则中没有与运算) . 匹配除换行符(\n、\r)之外的任意字符 [\u4e00-\u9fa5] 匹配中文字符 [\s\S] 匹配任意字符(随便两个互补区间都可以表示任意字符) 表示字符数量的描述符(描述前面子表达式的匹配数量) * 零次或多次 + 一次或多次 ? 零次或一次 {n} 整数 n 次 {n,m} n ~m 次,包含 n 和 m {n,} n 次以上,包含 n 默认是描述前面一个字符,如果是多个字符的子表达式,需要括号括起来。 如: (pattern)* th(is|at) 括号别有用处,后面会讲到 进阶

记录一个在工作中遇到的replace和replaceall的问题:java.util.regex.PatternSyntaxException: Illegal/unsupported escape sequence near index 1

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-07 19:20:22
接手了一个项目的维护,测试的第一天测试反馈报错,发我报错信息后,根据堆栈信息找到报错位置的代码如下: param.replaceAll("\\" + text, "<span style='color:red;'>"+text+"</span>")+"</span>"); 目的是想将某些字符串用红色进行展示,即将字符串替换成html。 报错的原因是replaceAll(String regex, String replacement)第一个参数为正则表达式,在解析正则表达式的时候上面的"\\"+text不满足解析条件比如\M 不是正则表达式,所以会报错。此处用replace即可。 根本原因是没有分清楚replace和replaceAll的区别,误以为replaceAll是替换字符串中满足条件的所有字符串。 实际上: replace和replaceAll的共同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串。 不同点是:replaceAll支持正则表达式,因此会对参数进行解析,如replaceAll("\\d", "XX"),会将数字替换成XX。而replace则不会,replace("\\d","XX")就是替换"\\d"的字符串,而不会解析为正则。 来源: https://www.cnblogs.com/youman/p/12654681.html

正则表达式中的常用模式

只谈情不闲聊 提交于 2020-04-07 17:12:00
正则表达式中的常用模式 下面是正则表达式中的一些常用模式。 /pattern/ 结果 . 匹配除换行符以外的所有字符 x? 匹配 0 次或一次 x 字符串 x* 匹配 0 次或多次 x 字符串,但匹配可能的最少次数 x+ 匹配 1 次或多次 x 字符串,但匹配可能的最少次数 .* 匹配 0 次或一次的任何字符 .+ 匹配 1 次或多次的任何字符 {m} 匹配刚好是 m 个 的指定字符串 {m,n} 匹配在 m个 以上 n个 以下 的指定字符串 {m,} 匹配 m个 以上 的指定字符串 [] 匹配符合 [] 内的字符 [^] 匹配不符合 [] 内的字符 [0-9] 匹配所有数字字符 [a-z] 匹配所有小写字母字符 [^0-9] 匹配所有非数字字符 [^a-z] 匹配所有非小写字母字符 ^ 匹配字符开头的字符 $ 匹配字符结尾的字符 \d 匹配一个数字的字符,和 [0-9] 语法一样 \d+ 匹配多个数字字符串,和 [0-9]+ 语法一样 \D 非数字,其他同 \d \D+ 非数字,其他同 \d+ \w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样 \w+ 和 [a-zA-Z0-9]+ 语法一样 \W 非英文字母或数字的字符串,和 [^a-zA-Z0-9] 语法一样 \W+ 和 [^a-zA-Z0-9]+ 语法一样 \s 空格,和 [\n\t\r\f] 语法一样 \s

grep

主宰稳场 提交于 2020-04-07 12:01:18
作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的。 首先谈一下grep命令的常用格式为:grep [选项] ”模式“ [文件] grep家族总共有三个:grep,egrep,fgrep。 常用选项:   -E :开启扩展(Extend)的正则表达式。   -i :忽略大小写(ignore case)。   -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。   -n :显示行号   -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker   -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。   -o :只显示被模式匹配到的字符串。   --color :将匹配到的内容以颜色高亮显示。   -A n:显示匹配到的字符串所在的行及其后n行,after   -B n:显示匹配到的字符串所在的行及其前n行,before   -C n:显示匹配到的字符串所在的行及其前后各n行,context       模式部分:   1、直接输入要匹配的字符串,这个可以用fgrep(fast grep)代替来提高查找速度,比如我要匹配一下hello.c文件中printf的个数

C#正则表达式获取html标签之间的内容

余生颓废 提交于 2020-04-07 08:01:28
正则表达式获取<td>和</td>之间的内容 string str = @"<td>123/126/130</td><td>186/194</td></tr><tr><td>4</td><td><f>beijing</td><td>T60</td> Regex reg = new Regex(@"(?<=<td>)(.*?)(?=</td>)", RegexOptions.IgnoreCase);//[^(<td>))] MatchCollection mc = reg.Matches(str); foreach (Match m in mc) { webtext.Text += m.Value + "\r\n"; } 参考资料 正则表达式30分钟入门教程 http://www.jb51.net/tools/zhengze.html 来源: oschina 链接: https://my.oschina.net/u/948490/blog/109711

JavaScript正则表达式方法简介

倾然丶 夕夏残阳落幕 提交于 2020-04-07 07:54:59
正则表达式的声明可以有两种方法,第一种是用new RegExp()函数声明,另外一种就是用双斜杠方法例如/hello/; 声明过程中,如果函数方法声明函数第一个参数为正则表达式的内容,第二个参数可以是i,g和m,i表示不区分大小写,g表示全局匹配,m表示多行查找 简单的方法有: test方法:返回Boolean型。它指出被查找的字符串中是否包含该模式。如果存在返回True,否则返回False; exec 方法:用正则表达式模式在字符串中寻找,并返回符合该正则表达式模式的数组; 字符串方法; match方法: 是字符串的方法, 例如var str = "my code is cool",str.match(/cool/) 返回找到的值,找不到返回null search方法:是字符串的方法,例如var str = "my code is cool",str.search(/cool/);返回的是匹配到的索引位置 replace方法:是字符串的方法, 例如var str = "my code is cool",str.replace(/cool/,"test");返回的是完成替换后的字符串,用第二个参数去替换第一个参数;但是需要注意的是 原始字符串并没有发生改变,而是生成了一个temp字符串去存储结果 split方法:用于分隔字符串,返回结果以数组形式,比如 var str = "my

如何在Vim中进行不区分大小写的搜索

大憨熊 提交于 2020-04-06 19:18:46
问题: I'd like to search for an upper case word, for example COPYRIGHT in a file. 我想搜索大写单词,例如文件中的COPYRIGHT。 I tried performing a search like: 我尝试过执行搜索: /copyright/i # Doesn't work but it doesn't work. 但它不起作用。 I know that in Perl, if I give the i flag into a regex it will turn the regex into a case-insensitive regex. 我知道在Perl中,如果我将 i 标志放入正则表达式,它会将正则表达式转换为不区分大小写的正则表达式。 It seems that Vim has its own way to indicate a case-insensitive regex. 似乎Vim有自己的方式来表示不区分大小写的正则表达式。 解决方案: 参考一: https://stackoom.com/question/9b4C/如何在Vim中进行不区分大小写的搜索 参考二: https://oldbug.net/q/9b4C/How-to-do-case-insensitive-search-in