正则表达式

基本的正则表达式符号

岁酱吖の 提交于 2020-03-04 13:05:42
正则表达式 正则表达式有一个定界符, /(开头)表达式 /(结尾) ^匹配开头,以什么开头 。$匹配结尾 指用什么结尾 * 加内容,指内容可以出现任意次,大于等于0次,可以有0次 + 加内容 ,指可以出现一次或者多次 最少一次,不能为0 ? 加内容,指前面的表达式出现0次或者一次 {n} 前面表达式出现n次,只能出现n次 {n, } 表示最少出现n次,最多不限 {n,m} 表示最少出现n次,最多m次 x|y 匹配x或者匹配y, |代表或者 [x,y,z] 匹配x y z 中的任意一个 [a-z] 匹配a到z之间的任意一个(区分大小写) \d 匹配任意一个数字 \D 匹配非数字 \s 匹配不可见字符 \S 匹配可见字符 \w 包括下划线在内的任意单词字符 包含数字 \W 非单词字符 。正则替换 preg_replace(要替换的条件,要替换成什么,来源) preg_split(拆分条件,字符串) 拆分出来为数组 preg_match(满足匹配条件的第一个,字符串,存储位置) preg_match_all(满足条件的字符串,存储位置) 全部匹配 file_get_contents(“http://www.youku.com”) 取出优酷网址的网站代码 来源: https://www.cnblogs.com/xiadengqi/p/11169836.html

正则表达式快速入门

天涯浪子 提交于 2020-03-04 13:03:36
首先简单介绍下正则表达式: 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。 正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 下面就看看正则表达式里乱七八糟的字符都是什么意思: 1、常用的元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 那我们试着理解下: \bhello\b 其实就是查找单词hello了——先是某个单词开始处( \b),然后是字符串hello ,最后是单词结束处( \b) 。 010-\d\d\d\d\d\d\d\d 比如北京的固定电话——先是010-,然后是8个数字(\d)。 ^\d{18}$ 比如身份证号——先是字符串开始(^),然后是18位数字(\d),最后字符串结束($)。 2、常用的限定符 代码 说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n, } 重复n次或更多次 {n,m} 重复n到m次 \ba\w*\b 匹配 以字母 a开头的单词——先是某个单词开始处( \b),然后是字母 a,然后是任意数量的字母或数字( \w*),最后是单词结束处( \b)。 windows\d+

Linux之特殊符号与正则表达式

吃可爱长大的小学妹 提交于 2020-03-04 12:21:34
Linux中常用的特殊符号 '' 所见即所得,吃啥吐啥 "" 特殊符号会被解析运行 `` ==== $() 先运行里面的命令 把结果留下 > 重定向符号 先清空文件的内容 然后追加文件的最后 >> 追加重定向 追加文件的最后 2> 错误重定向 只有错误的信息 才会通过这个漏洞进入文件中 2>> 错误追加重定向 ~ 当前用户的家目录 root ~ /root oldboy ~ /home/oldboy ! 查找并运行历史命令 !awk 包含awk的命令 最近的一条运行 history |grep awk # 注释 root用户的命令提示符 $ 取出变量的内容 awk $取某一列的内容 普通用户的命令提示符 * 所有 任何东西 \ 撬棍 转义字符 && 前一个命令执行成功然后在执行后一个命令 ifdown eth0 && ifup eth0 || 前一个命令支持失败了再执行后面的命令 通配符 通配符是用来查找文件的。如:‘*.txt’ 表示匹配所有以 . txt结尾的文件##1. * 所有,任意 找出文件名包含oldboy的文件 mkdir -p /oldboy cd /oldboy touch oldboy.txt oldboy oldboyfile oldboy.awk eduoldboy [root@oldboyedu01-nb oldboy]# find /oldboy/

【python】Regex相关函数的使用

家住魔仙堡 提交于 2020-03-04 11:30:23
re.search re.search(pattern, string)在字符串的任何位置搜索正则表达式的匹配。 如果找到,则返回一个匹配对象;如果没有,则返回 None。 phone_re = r "[0-9]{3}-[0-9]{3}-[0-9]{4}" text = "Call me at 382-384-3840." match = re . search ( phone_re , text ) match #<_sre.SRE_Match object; span=(11, 23), match='382-384-3840'> 尽管返回的匹配对象具有各种有用的属性,但我们通常使用 re.search 来测试一个是否出现在字符串中。 if re . search ( phone_re , text ) : print ( "Found a match!" ) 另一个常用的方法 re.match (pattern,string)的行为与 re.search 相同,但只在字符串的开头检查匹配,而不是在字符串的任何位置检查匹配。 re.findall 我们使用 re.findall (pattern,string)提取所有匹配的子字符串。 此方法会返回字符串中所有匹配的list。 gmail_re = r '[a-zA-Z0-9]+@gmail\.com' text = '''

扩展正则表达式及应用

折月煮酒 提交于 2020-03-04 06:21:40
第1章 扩展正则表达式 1.1 + 前一个字符连续出现了 1 次或 1 次以上 egrep "0+" clsn.txt 1 次或 1 次以上 >=1 egrep "0*" clsn.txt 0 次或 0 次以上 >=0 1.1.1 找到文本中的 0 [root@znix ~]# egrep "0+" clsn.txt my qq num is 49000448. not 4900000448. [root@znix ~]# egrep -o "0+" clsn.txt 000 00000 1.1.2 取出文件中的大写字母 [root@znix ~]# grep -o "[A-Z]" clsn.txt I I I O L D B O Y 1.1.3 取出连续出现的大写字母 [root@znix ~]# egrep -o "[A-Z]+" clsn.txt I I I clsn 1.1.4 显示所有的单词 [root@znix ~]# egrep -o "[A-Za-z]+" clsn.txt I am clsn teacher 1.2 | 或者 表示找其中的一个或者是另外一个。 [root@znix ~]# egrep "clsn|oldbey" clsn.txt -o clsn clsn oldbey 找 /etc/services 中的两个端口 [root@znix ~]#

Linux命令中使用正则表达式

倾然丶 夕夏残阳落幕 提交于 2020-03-04 05:31:14
在使用grep、awk和sed命令时,需要使用正则表达式。 比如我通过grep找代码编译结果中是否有错误。或者是否有我代码的错误。 这里说下正则表达式基本的应用: • 匹配行首与行尾。 • 匹配数据集。 • 只匹配字母和数字。 • 匹配一定范围内的字符串集。 ^ 只匹配行首 $ 只匹配行尾 * 一个单字符后紧跟*,匹配0个或多个此单字符 [] 匹配[]内字符,可以是一个单字符,也可以是字符序列。可以使用 - 表示[]内字符序列范围,如用[1-5]代替[12345] \ 用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有特殊含义。\可以使其失去应有含义。 . 匹配任意单字符 pattern\{n\} 用来匹配前面pattern出现次数。n为次数 pattern\{n,\} 含义同上,但次数最少为n patter\{n,m\} 含义同上,但pattern出现次数在n与m之间 使用句点匹配单字符 句点“.”可以匹配任意单字符。例如,如果要匹配一个字符串,以be g开头,中间夹一个 任意字符,那么可以表示为be g . n,“.”可以匹配字符串头,也可以是中间任意字符。 在ls-l命令中,可以匹配一定权限: .. . x . . x . . x 此格式匹配用户本身,用户组及其他组成员的执行权限。 ~$ ls -l |grep ...x..x..x drwxrwxrwx 1

Java的String的常用方法

放肆的年华 提交于 2020-03-04 03:48:29
String的常用方法归纳与总结 char charAt(int index) 返回指定索引处的 char 值。 int compareTo(Object o) 把这个字符串和另一个对象比较。 int compareTo(String anotherString) 按字典顺序比较两个字符串。 int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 String concat(String str) 将指定字符串连接到此字符串的结尾。 boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 boolean equals(Object anObject) 将此字符串与指定的对象比较。 boolean equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。 byte[] getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 byte[] getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 void getChars

JAVA-正则表达式

笑着哭i 提交于 2020-03-03 22:12:26
Pattern.matches 方法适用于设置尚可接受并且只需进行一次测试的情况 ( 整个序列全匹配时才返回true )。 boolean b = Pattern.matches("[T|t]rue", "true");System.out.println(b);true[Yy]es[Tt]rue时返回fale,由于不是整个序列匹配输入字符串"true" boolean a = "true".matches("[a-z]{4}");System.out.println(a);true Pattern pattern = Pattern.compile("[A-Z][a-z]*", Pattern.CASE_INSENSITIVE | Pattern.UNIX_LINES); split方法使用,分隔字符串 Pattern pattern = Pattern.compile(",");String string = "sa,ad,fd,c,we,d,a";String[] strings = pattern.split(string);for (String s : strings) { System.out.println(s);} Pattern对象是线程安全的,Matcher类对象是非线程安全的,因为它们在方法调用之间保有内状态。 matcher对象可以重复使用

贪婪vs.勉强vs.占有量词

孤街浪徒 提交于 2020-03-03 22:02:55
我找到了这本关于正则表达式的 出色教程 ,尽管我直观地理解“贪婪”,“勉强”和“可能”量词的作用,但我的理解似乎还存在严重的漏洞。 具体来说,在以下示例中: Enter your regex: .*foo // greedy quantifier Enter input string to search: xfooxxxxxxfoo I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13. Enter your regex: .*?foo // reluctant quantifier Enter input string to search: xfooxxxxxxfoo I found the text "xfoo" starting at index 0 and ending at index 4. I found the text "xxxxxxfoo" starting at index 4 and ending at index 13. Enter your regex: .*+foo // possessive quantifier Enter input string to search: xfooxxxxxxfoo No match found. 解释提到了 吃掉

jquery 正则表达式

我们两清 提交于 2020-03-03 09:47:50
/* * 正则表达式 作用 验证字符串格式的 * 比较繁琐 但是比较强大 * * 正则表达式应该如何去写 写法很随意 主要你要记住正则的语法规则 * 自己去拼接表达式 * * 开始记符号 * \ 转义字符 \n 匹配的就是换行 \\ 匹配的是\ \( 匹配的是( * ^ 代表的是 开始符号 匹配字符的开始 或者正则表达式的开始 * $ 代表的是 结束符号 匹配字符的结束 或者正则表达式的结束 * * 代表的是匹配一个字表达是零次或者多次 zooo zo* 等价 {0,} * + 代表的是 一次或者多次 zoooo zo+ {1,} * ? 代表匹配表达是 零次或者一次 do(es)? {0,1} do does ?和+ 搭配使用可以作为限定 非贪婪和贪婪匹配 * {n} n为非负整数 代表匹配前匹配前面的字表达是 面的字前面的表达式n次 (does){10} * {n,} n为非负整数 至少匹配前面的表达式n次 无上限 food o{1,} * {n,m} n m为非负整数 最少匹配n次 最多匹配m次 (food){1,3} * () 代表的是字表达式 * x|y 匹配x或者y (f|d)ood food dood * [] 在正则表达式里面代表字符集 [abcdef]{1} * [abcd] 匹配里面的任意一个字符 * [^abcd] 非字符集里面的任意字符 * [a-z]