表示最小匹配所有字符(拒绝贪婪匹配) d 匹配一个数字;等价于[0-9] D 匹配除数字以外任何一个字符;等价于 w 匹配一个英文字母、数字或下划线;等价于[0-9a-zA-Z_] W 匹配除英文字母...、数字和下划线以外任何一个字符;等价于 s 匹配一个空白字符;等价于[fnrtv] S 匹配除空白字符以外任何一个字符;等价于 f 匹配一个换页符等价于 x0c 或 cL n 匹配一个换行符;等价于...非贪婪模式尽可能少的匹配所搜索的字符串,而默认 的贪婪模式则尽可能多的匹配所搜索的字符串。 . 匹配除 "n" 之外的任何单个字符。...匹配中文字符的正则表达式: [x{4e00}-x{9fa5}] 匹配双字节字符(包括汉字在内): 匹配空行的正则表达式:n[s| ]* 匹配HTML标记的正则表达式:/<(. |/ 匹配首尾空格的正则表达式...24、匹配空行:n[s| ]* 25、提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) ('|")?
表示任意一个除换行符之外的字符 常用组合: .*? 表示最小匹配所有字符(拒绝贪婪匹配) 3....普通转义字符: \d 匹配一个数字;等价于[0-9] \D 匹配除数字以外任何一个字符;等价于[^0-9] \w 匹配一个英文字母、数字或下划线;等价于[0-9a-zA-Z_] \W 匹配除英文字母、数字和下划线以外任何一个字符...;等价于[^0-9a-zA-Z_] \s 匹配一个空白字符;等价于[\f\n\r\t\v] \S 匹配除空白字符以外任何一个字符;等价于[^\f\n\r\t\v] \f 匹配一个换页符等价于 \x0c...非贪婪模式尽可能少的匹配所搜索的字符串,而默认 的贪婪模式则尽可能多的匹配所搜索的字符串。 . 匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[....匹配中文字符的正则表达式: [\x{4e00}-\x{9fa5}] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空行的正则表达式:n[s| ]*r 匹配HTML标记的正则表达式:/<
正则表达式,作为一种快速、便捷的处理字符串的工具,在各种编程语言中都有着广泛的用途,通过在PHP中的一些使用,下面记录一下关于PHP中正则使用的一些技巧。.../ 匹配头为is的字符串 /is\b/ 匹配尾为is的字符串 /\bis\b/ 定界 \B 匹配除单词边界之外的任意字符 /\Bis/ 匹配单词“This”中的“is...” \d 匹配一个数字;等价于[0-9] \D 匹配除数字以外任何一个字符;等价于[^0-9] \w 匹配一个英文字母、数字或下划线;等价于[0-9a-zA-Z_] \W ...匹配除英文字母、数字和下划线以外任何一个字符;等价于[^0-9a-zA-Z_] \s 匹配一个空白字符;等价于[\f\t\v] \S 匹配除空白字符以外任何一个字符;等价于[^\f\t\...PCRE正则表达式函数: preg_match()和preg_match_all() preg_quote() preg_split() preg_grep() preg_replace() 函数的具体使用
sed G # 将原来的所有空行删除并在每一行后面增加一空行。...# 这样在输出的文本中每一行后面将有且只有一空行。...sed '/^$/d;G' # 在每一行后面增加两行空行 sed 'G;G' # 将第一个脚本所产生的所有空行删除(即删除所有偶数行) sed 'n;d' # 在匹配式样“regex”的行之前插入一空行...在上一个脚本所产生的那一行邮件头的基础上进一步的将非电邮 # 地址的部分剃除。...在上一个脚本所产生的那一行邮件头的基础上进一步的将非电邮 # 地址的部分剃除。
在jfedu.txt每行后加入空行,也即每行占永两行空间,每一行后边插入一行空行、两行空行及前三行每行后插入空行: sed ‘/^$/d;G’ jfedu.txtsed ‘/^$/d;G;G’ jfedu.txtsed...匹配行前一行、后一行插入空行以及同时在匹配前后插入空行: sed ‘/jfedu/{x;p;x;}’ jfedu.txtsed ‘/jfedu/G’ jfedu.txtsed ‘/jfedu/{x;p;...x;G;}’ jfedu.txt 在jfedu.txt每行后加入空行,也即每行占永两行空间,每一行后边插入空行: sed ‘/^$/d;G’ jfedu.txt 在jfedu.txt每行后加入空行,...也即每行占永两行空间,每一行后边插入空行: sed ‘/^$/d;G’ jfedu.txt 在jfedu.txt每行前加入顺序数字序号、加上制表符\t及.符号: sed = jfedu.txt| sed...匹配除中括号以外的任意一个字符; 常用GREP工具企业演练案列: grep -c “test” jfedu.txt 统计test字符总行数;grep -i “TEST” jfedu.txt 不区分大小写查找
正则表达式元字符 * 匹配前一个内容的0次1次或多次 . 匹配内容的0次1次或多次,但不包含回车换行 + 匹配前一个内容的1次或多次 ?...匹配前一个内容的0次或1次 | 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配) ^ 匹配字符串首部内容 $ 匹配字符串尾部内容 \b 匹配单词边界,边界可以是空格或者特殊符合...\B 匹配除带单词边界意外内容 {m} 匹配前一个内容的重复次数为M次 {m,} 匹配前一个内容的重复次数大于等于M次 {m,n} 匹配前一个内容的重复次数M次到N次 ( ) 合并整体匹配,...匹配的时候 x 忽略正则中的空白 A 强制从头开始匹配 D 强制$匹配尾部无任何内容 \n U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束, 常用在采集程序上的正则表达式 preg_match_all...提示:1、替换内容可以是一个正则也可以是数组正则 2、替换内容可以通过修正符e来解决替换执行内容 preg_split 正则切割 preg_split ( string pattern, string
在php中字符替换函数有几个如有:str_replace、substr_replace、preg_replace、preg_split、str_split等函数,下面我来给大家总结介绍介绍....四、preg_split ( pattern , subject,limit = -1 ,flag ) 作用:通过正则表达式分割字符串 参数 描述 pattern 必需,需要搜索的模式. replacement...必需,用于替换的字符串或数组. subject 必需,需要替换的字符串. limit 被分割的字符串最多limit. flag 模式 例 1672. preg_split() 例子,取得搜索字符串的成分...> 例 1674,将字符串分割为匹配项及其偏移量,代码如下: $str=’hypertext language programming’; chars= preg_split(‘/ /’,str, -1...[0] => programming [1] => 19 ) ) 五、str_split(subject,length) 作用:将字符串分割成数组 参数 描述 subject 字符串. length 每一段的长度
一、前言 前面的博客里,有对字符集的解析。这里就不是字符集的事儿了,在PHP中很多函数的处理默认是unicode中的UTF-8编码格式。那么废话不多说,直接开始正题。...以分隔符(、)的UNICODE的16进制码点分割字符$preg_strings。 三、PHP函数preg_split解析 分割字符串“测试一下” <?...php $strings = '测试一下'; $mb_arr = preg_split('//u', $strings, -1, PREG_SPLIT_NO_EMPTY); print_r($mb_arr...比如: %[\x{4e00}-\x{9fa5}]+%u 其中后面的修饰符u代码表以正则匹配以utf-8的编码格式匹配。 例子一: <?...中文的UNICODE码点在4E00 – 9FFF (这里说的都是16进制) 所以,正则匹配写法就是区间[],[\x{4E00}-\x{9FFF}] 这两个正则的效果都是一样的。
-x, --line-regexp 强制 PATTERN 仅完全匹配一行 -z, --null-data 一个 0 字节的数据行,但不是空行 杂项: -s,...为每一匹配项打印文件名 -h, --no-filename 输出时不显示文件名前缀 --label=LABEL 将LABEL 作为标准输入文件名前缀 -o, --...FILE_PATTERN 的文件 --exclude=FILE_PATTERN 跳过匹配FILE_PATTERN 的文件和目录 --exclude-from=FILE 跳过所有除FILE...以外的文件 --exclude-dir=PATTERN 跳过所有匹配PATTERN 的目录。...-L, --files-without-match 只打印不匹配FILEs 的文件名 -l, --files-with-matches 只打印匹配FILES 的文件名 -c, --count
例如, “[^ab]” 匹配 “a” 和 “b” 以外的字符. “[^0-9]” 匹配任意非数字字符. * 其左边的字符被匹配任意次(0次,或者多次).... ^ 其右边的表达式被匹配在一行的开始. 例如 “^A” 仅仅匹配以 “A” 开头的行. $ 其左边的表达式被匹配在一行的结尾. 例如 “e$” 仅仅匹配以 “e” 结尾的行....【3】正则表达式应用——删除每一行行尾的指定字符 因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现 比如 12345 1265345 2345 需要删除每行末尾的“345”...(技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且 以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。...(1)选择“从行首开始匹配”,“查找内容”组合框中出现字符“^”,表示待查找字符串必须出现在文本中一行的行首。
里所有的h标签,这种写法考虑到了H标签的大小写 PS.在w3c的规范里还是推荐所有html标签都必须是小写字母,所有属性都使用双引号包裹 排除型匹配 gr[^ae]y 匹配除了grey和gray以外的所有单词...^代表每一行的开始,$代表每一行的结束 ^$ 匹配空行 ^foot$ 匹配只有foot一个词的行 元字符的出现可以理解为方便书写 基础元字符表 代码 说明 ....匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \W 匹配任意不是字母或数字或下划线或汉字的字符 \s 匹配任意的空白符 \S 匹配任意非空白符 \d 匹配数字 \D 匹配非数字 \b...> 结果好像不是我们想要的,看来分组命名在PHP的正则替换里没有作用,以后使用的时候一定要注意! 断言 断言的意思就是预先判断匹配字符的位置,以达到更精确的匹配。...简单一行规则就包含了十分复杂的逻辑和运算,确实快赶上一门程序语言了,如果你能够掌握他,那么他会极高的提高你的工作效率。
a-z的字符串 [A-Z] 匹配任何包含大写字母A-Z的字符串 [0-9] 匹配任何包含0-9的字符串 [abc] 匹配任何包含小写字母a,b,c的字符串 [^abc] 匹配任何不包含小写字母a,b,c...的字符串 [a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9和下划线的字符串 \w 匹配任何包含a-zA-Z0-9和下划线的字符串 \W 匹配任何不包含a-zA-Z0-9和下划线的字符串 \d 匹配任何包含数字字符...( [0] => php123php [1] => php456php ) ) //禁止贪婪匹配后,会就近匹配 ---- 三、Perl风格函数 1、preg_grep() 搜索数组中的所有元素...5、preg_replace() 替换模式的所有出现,然后替换成想要的字符串返回出来 6、preg_split() 以不区分大小写将字符串划分不同的元素 //风格函数 //preg_grep.../','python', 'php1php2php3'); //结果为 python1python2python3 //preg_split() $str = preg_split('/a/', 'cbabc
php其实也有类似于beautifulsoup的html解析工具,没去了解,毕竟我需要的也不是太繁琐,有需要的也可以去看一下。下面具体介绍正则表达式在php中的使用。...正则表达式在php中的使用 php中支持正则表达式的函数 preg_filter 执行正则表达式搜索和替换 preg_grep 返回匹配模式的数组条目 preg_last_error...preg_split 通过一个正则表达式分隔字符串 php中的PREG常量 PREG_PATTERN_ORDER 结果按照”规则”排序,仅用于preg_match_all(), 即$matches...将匹配单个 “o”,而 ‘o+’ 将匹配所有 ‘o’。 . 匹配除换行符(\n、\r)之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用像”(.|\n)”的模式。...匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。 [ 标记一个中括号表达式的开始。要匹配 [,请使用 [。 ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
分享给大家供大家参考,具体如下: 有时候在一些特定的业务场景中需要匹配,或者提取一些关键的信息,例如匹配网页中的一些链接, 提取一些数据时,可能会用到正则匹配。...下面介绍一下php中的一些常用的正则处理函数。 一、preg_replace(pattern,replacement, 执行一个正则表达式的搜索和替换。 <?...php echo "<pre "; $str = "12,34:56;784;35,67:897:65"; //分隔字符串 $arr = preg_split("/[,;:]/",$str...php echo "<pre "; echo preg_quote("(abc){10}");//在每个正则表达式语法的字符前增加一个反斜杠 ?...]"; //将上面字串中合法的日期匹配出来 preg_match_all("/\[[0-9]{4}([\-,\/])[0-9]{2}\1[0-9]{2}\]/",$date,$a); print_r
', $string);echo $new_string;// 输出:hello PHP// preg_split()$pattern = '/\s+/';$string = 'hello world'...;$words = preg_split($pattern, $string);print_r($words);// 输出:Array([0] => hello [1] => world)字符串匹配除了正则表达式之外...,PHP还提供了一些字符串匹配函数。...这些函数可以用于查找字符串中是否包含某个子串,或者从字符串中提取特定的子串。以下是一些常用的字符串匹配函数:strpos():在字符串中查找某个子串第一次出现的位置。...以下是一些字符串匹配函数的示例:// strpos()$needle = 'world';$haystack = 'hello world';if (strpos($haystack, $needle)
介绍 sed (stream editor, 流编辑器) 是Linux下一款功能强大的非交互流式文本编辑器(vim是交互式文本编辑器),可以对文本文件的每一行数据匹配查询之后进行增、删、改、查等操作,支持按行...语法 sed会读取每一行数据到模式空间中,之后判断当前行是否符合模式匹配要求,符合要求就会执行sed程序命令,否则不会执行sed程序命令;如果不写匹配模式,那么每一行都会执行sed程序命令。...n 读取下一行,遇到n时会自动跳入下一行。 特殊符号: 命令 功能描述 ! 就像一个sed命令,放在限制条件后面,对指定行以外的所有行应用命令(取反)。...即读取一行处理一行,输出一行; sed把文件读出来每一行存放的空间叫模式空间,会在该空间中对读到的内容做相应处理; 此外sed还有一个额外的空间即暂存空间,暂存空间刚开始里边只有个空行; sed...将前3行数据复制到暂存空间(追加方式),之后将暂存空间的所有内容复制粘贴到模式空间最后一行(追加方式) sed '1,3H;$G' sed.txt 运行效果 6.5 给每一行添加空行 插入空行 sed
) 小提示:匹配运算符前面需要加'\' 例如:'+' 号,匹配的话需要写出 '\+' 元字符 原子的筛选方式: | 匹配两个或者多个分支选择 [] 匹配方括号中的任意一个原子 [^] 匹配除方括号中的原子之外的任意字符...匹配除换行符之外的任意字符 \d 匹配任意一个十进制数字,即{0-9] \D 匹配任意一个非十进制数字[^0-9] 相当于[^\d] \s 匹配一个不可见的原子,即[\f\n\r\t\v] \S...模式单元 {} 匹配其中的整体为一个原子 修正模式 贪婪匹配 匹配结果存在歧义时取其长(默认) 懒惰匹配 匹配结果存在歧义时取其短,只需在正则表达式的后面'/'加上'U',例如'/[0-9...preg_split 通过一个正则表达式分隔字符串 preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $..."; $a = preg_split('/[\d]/', $subject, -1, PREG_SPLIT_NO_EMPTY); var_dump($a); $a = preg_split(
本文主要介绍了 PHP 正则表达式相关的函数。...官方文档:http://php.net/manual/zh/ref.pcre.php int preg_match($pattern, $subject, [ array &$matches ]) int...preg_match_all($pattern, $subject, array &$matches) 返回匹配到结果的次数。...replacement, $subject) preg_filter($pattern, $replacement, $subject) preg_grep($pattern, array $input) preg_split
sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。...3.1 sed命令 命令 功能 a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行 c\ 用此符号后的新文本替换当前行中的文本。...多行时除最后一行外,每行末尾需用”\”续行 i\ 在当前行之前插入文本。...匹配除换行符以外的单个字符 /m..y/ 匹配包含字母m,后跟两个任意字符,再跟字母y的行 * 匹配零个或多个前导字符 /my*/ 匹配包含字母m,后跟零个或多个y字母的行 [] 匹配指定字符组内的任一字符...所追加的文本行位于sed命令的下方另起一行。如果要追加的内容超过一行,则每一行都必须以反斜线结束,最后一行除外。最后一行将以引号和文件名结束。
领取专属 10元无门槛券
手把手带您无忧上云