首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP正则表达式允许最多1'.' 或字符串中的'_'字符和'.' 或'_'不能在字符串的开头或结尾

PHP正则表达式详解

PHP正则表达式允许最多1'.' 或字符串中的''字符和'.' 或''不能在字符串的开头或结尾。这种正则表达式可以用来匹配大多数常规字符串,包括纯文本、HTML和XML等。

以下是一些PHP正则表达式的常见应用:

  1. 匹配电子邮件地址
代码语言:php
复制
<?php
$email = 'example@example.com';
if (preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $email)) {
    echo 'Valid email address';
} else {
    echo 'Invalid email address';
}
?>
  1. 提取URL
代码语言:php
复制
<?php
$url = 'https://www.example.com/path/to/file.php?query=value';
preg_match('/https?:\/\/(www\.)?([a-zA-Z0-9]+(-?[a-zA-Z0-9])*\.)+[a-zA-Z]{2,6}/', $url, $matches);
echo $matches[0];
?>
  1. 匹配电话号码
代码语言:php
复制
<?php
$phone = '+1 (123) 456-7890';
if (preg_match('/^\+\d{1,3} \(\d{3}\) \d{3}-\d{4}$/', $phone)) {
    echo 'Valid phone number';
} else {
    echo 'Invalid phone number';
}
?>
  1. 匹配IPv4地址
代码语言:php
复制
<?php
$ip = '192.168.1.1';
if (preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $ip)) {
    echo 'Valid IPv4 address';
} else {
    echo 'Invalid IPv4 address';
}
?>
  1. 匹配HTML标记
代码语言:php
复制
<?php
$html = '<p>This is an example <strong>bold</strong> text.</p>';
if (preg_match('/<(.*?)>/si', $html, $matches)) {
    echo $matches[1];
} else {
    echo 'No match found';
}
?>
  1. 匹配CSS属性
代码语言:php
复制
<?php
$css = 'background-color: red; color: blue; font-size: 16px';
if (preg_match('/\s*([a-z-]+):[\s]*(.*?);/si', $css, $matches)) {
    echo $matches[1] . ' : ' . $matches[2];
} else {
    echo 'No match found';
}
?>
  1. 匹配JSON结构
代码语言:php
复制
<?php
$json = '{"name": "John Doe", "age": 30, "city": "New York"}';
if (json_decode(''.$json.'', true)) {
    echo 'Valid JSON string';
} else {
    echo 'Invalid JSON string';
}
?>
  1. 匹配YAML结构
代码语言:php
复制
<?php
$yaml = 'name: John Doe
age: 30
city: New York';
if (yaml_parse_file($yaml)) {
    echo 'Valid YAML file';
} else {
    echo 'Invalid YAML file';
}
?>
  1. 匹配XML标签
代码语言:php
复制
<?php
$xml = '<root><tag1>value1</tag1><tag2>value2</tag2></root>';
if (xml_parse_into_struct($xml, $xml_data)) {
    foreach ($xml_data as $element => $value) {
        echo "Element: {$element}: {$value}\n";
    }
} else {
    echo 'Invalid XML string';
}
?>
  1. 匹配JSON内容
代码语言:php
复制

<?php

$json = '{"name": "John Doe", "age": 30, "city": "New York"}';

$data = json_decode($json, true);

if ($data) {

代码语言:txt
复制
echo 'Name: ' . $data['name'] . '<br>';
代码语言:txt
复制
echo 'Age
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用awk和正则表达式过滤文件中的文本或字符串

当我们在 Unix/Linux 中运行某些命令来读取或编辑字符串或文件中的文本时,我们很多时候都会查找指定特征的字符串。这可能会使用正则表达式。 什么是正则表达式?...正则表达式可以定义为表示多个字符序列的字符串。关于正则表达式的最重要的事情之一是它们允许你过滤命令或文件的输出、编辑文本或配置文件的一部分等等。...[character(s)]它匹配字符中指定的任何一个字符,也可以使用连字符(-)表示一系列字符,例如[a-f]、[1-5]等。 ^ 它匹配文件中一行的开头。 $ 匹配文件中的行尾。...让我们看一个例子来证明这一点,采用正则表达式r*z,这意味着匹配以字母开头r并以z以下行结尾的字符串: this is rumenz, where you get the best good tutorials...,这里 awk 将匹配文件中包含字符a或l或1在一行中的所有字符串/etc/hosts. # awk '/[al1]/{print}' /etc/hosts 下一个示例匹配以K或k开头的字符串T: #

2.3K10
  • OC中获取一串字符串的高度(宽度确定)或宽度(高度确定)

    版权声明:本文为博主原创文章,未经博主允许不得转载。...https://blog.csdn.net/u010105969/article/details/52937475 项目中我们有时会需要根据字符串来确定UILabel的宽度或高度,如我们经常遇到的单元格自适应问题...因为有时如果字符串过长那么UILabel的宽度就会相应发生变化),那么就可以利用下面的方法: CGSize size = [string sizeWithFont:font constrainedToSize...:CGSizeMake(MAXFLOAT, 17)];  CGFloat w =size.width; 其实这个方法只是先获取字符串(字符串的字体大小是确定了的)的size再确定其宽度。...从方法中可以看出我们固定了字符串的高度为17,如果想要获取字符串的高度,那么固定宽度就好了。

    2.6K30

    将截断字符串或二进制数据是什么意思_截取字符串中的一部分

    今天做数据库练习的时候,往一个student表中在新建查询中用T-Sql语句插入一条记录。...insert into student values (‘090120′,’陈冬’,’男’,19,’信息系’,’1234567′) 系统老显示:将截断字符串或二进制数据,语句已结束。...…………………… 原因:找到student表,查看表的数据类型,才知道在定义ssex时,把ssex的数据类型定义为:char(1)。而‘男’这个字符要占用2个字节。故所输入的字符过长。...解决方法:把student表中的ssex的数据类型改为:char(2)。 成功! 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    91620

    【Python】字符串 ① ( Python 字符串定义形式 | 单引号定义法 | 双引号定义法 | 三引号定义法 | 字符串中包含单引号或双引号的处理方式 )

    文章目录 一、Python 字符串定义形式 二、字符串中包含 单引号 / 双引号 一、Python 字符串定义形式 ---- Python 字符串定义形式 : 单引号定义法 : name = 'Tom...单引号 / 双引号 ---- 如果定义一个字符串 , 其中 包含 单引号 / 双引号 ; 单引号定义的字符串 可以包含 双引号 ; 双引号定义的字符串 可以包含 单引号 ; 使用 转义字符 \ 解除...单引号 或 双引号 的作用 , 使其变为普通字符 ; 代码示例 : 第一个示例中 , 在单引号中包含了双引号 ; 第二个示例中 , 在双引号中包含了单引号 ; 第三个示例中 , 在双引号中使用 转义字符...解除了 内部双引号效用 ; # 字符串中包含 单引号 / 双引号 # 单引号定义的字符串 可以包含 双引号 name = '"Tom" is 18 years old' print(name) #...双引号定义的字符串 可以包含 单引号 name = "'Tom' is 18 years old" print(name) # 使用 转义字符 \ 解除 单引号 或 双引号 的作用 name = "\

    3.1K40

    shell 文本三剑客之正则表达式

    比如 匹配正确的IP地址 匹配正确的e-mail地址 正则表达式 1、正则表达式介绍 正则表达式 (Regular Expression、regex或regexp,缩写为RE),也译为正规表示法、常规表示法...许多程序设计语言都支持利用正则表达式进行字符串操作 。例如,在Perl中就内建了一个功能强大的正则表达式引擎。 正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。...生成数据文件 [root@manage01 ~]# updatedb 2、正则表达式特殊字符 定位符使用技巧:同时锚定开头和结尾,做精确匹配;单一锚定开头或结尾或者不锚定的,做模糊匹配。...定位符 说明 ^ 锚定开头 ^a 以a开头 默认锚定一个字符 $ 锚定结尾 a$ 以a结尾 默认锚定一个字符 测试案例 1)精确匹配 以a开头c结尾的字符串 [root@zutuanxue ~]#...)精确匹配 以a开头b或c结尾 中间是任意 长度为三个字节的字符串 [root@zutuanxue ~]# egrep "^a.

    1.8K40

    正则表达式

    许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。 正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。...生成数据文件 [root@manage01 ~]# updatedb 2、正则表达式特殊字符 定位符使用技巧:同时锚定开头和结尾,做精确匹配;单一锚定开头或结尾或者不锚定的,做模糊匹配。...定位符 说明 ^ 锚定开头 ^a 以a开头 默认锚定一个字符 $ 锚定结尾 a$ 以a结尾 默认锚定一个字符 测试案例 1)精确匹配 以a开头c结尾的字符串 [root@zutuanxue ~]#...\ 转义字符 | 或 测试案例 1)精确匹配 以a开头c结尾 中间任意 长度为三个字节的字符串 [root@zutuanxue ~]# egrep "^a.c$" file acc abc...注意[[ ]] 双中括号的意思: 第一个中括号是匹配符[] 匹配中括号中的任意一个字符,第二个[]是格式 如[:digit:] 1)精确匹配 以a开头c结尾 中间a-zA-Z0-9任意字符

    53830

    python中正则表达式的学习

    匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 常用限定符 代码/语法 说明...\D 匹配任意非数字的字符 \B 匹配不是单词开头或结束的位置 [^x] 匹配除了x以外的任意字符 [^aeiou] 匹配除了aeiou这几个字母以外的任意字符 常用模式修正符 代码/语法 说明 i...表示在进行匹配的时候不区分大小写 m 多行识别.即将字符串视为多行,不管是那行都能匹配 s 将字符串视为单行,转义回车换行符作为普通字符 g 表示全局匹配 x 将模式中的空白忽略 A 强制从目标字符串开头匹配...D 强制尾部无任何内容.若使用$限制结尾字符,则不允许结尾有换行 U 禁止贪婪匹配,只匹配最近的一个字符串(不重复匹配) e 配合PHP函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行...贪婪模式和非贪婪模式的区别 贪婪模式,趋向于找到符合要求的最多元素。

    46010

    PHP的基本规则

    因此,在绝大多数可以使用单引号的场合,都禁止使用双引号。根据上述分析,应该或必须使用单引号的情况如下: 字符串为固定值,不包含"\t"等特殊转义字符。 数组的固定下标,如$array['key']。...除非字符串中有特殊情况,否则,在程序以及HTML中不允许出现两个连续的空格。 任何情况下,PHP程序中的空白行应当不包含任何TAB或空格。同时,任何程序行尾也不能出现多余的TAB或空格。...在对象中的方法,声明为private或protected的,名称的首字符必须是一个单独的下划线,这是唯一的下划线在方法名字中的用法。声明为public的方法不以下划线开头。...} A.2.5  变量 变量只包含数字和字母字符,不鼓励使用数字,不允许为下划线。...A.3.2  字符串 1.字符串文字 如果字符串是文字(不包含变量),则用单引号(apostrophe)引起来: $a = 'Example String'; 2.包含单引号(')的字符串文字 如果文字字符串包含单引号

    5.1K50

    Nginx配置location总结及rewrite规则写法

    如A中只匹配根目录结尾的请求,后面不能带任何字符串。...^~开头表示uri以某个常规字符串开头,不是正则匹配 ~开头表示区分大小写的正则匹配 ~*开头表示不区分大小写的正则匹配 /通用匹配,如果没有其它匹配,任何请求都会匹配到 顺序 && 优先级 (location...如果为真,大括号内的rewrite指令将被执行,if条件(condition)可以是如下任何内容: 当表达式只是一个变量时,如果值为空或任何以0开头的字符串都会当做false 直接比较变量和内容是,使用...= ~ 正则表达式匹配,~* 不区分大小写的匹配,!~ 区分大小写的不匹配 -f  和!-f 用来判断是否存在文件 -d 和 !-d 用来判断是否存在目录 -e 和 !...:重复0次或1次 +:重复1次或更多次 *:重复1次或更多次 \d:匹配数字 ^:匹配字符串的开始 $:匹配字符的结尾 {n}:重复n次 {n,}:重复n次或更多次 [c]:匹配单个字符c [a-z]:

    1.1K10

    Js正则Replace方法

    三、^ 和 $ ^ 匹配一个字符串的开头,比如 (^a) 就是匹配以字母a开头的字符串 $ 匹配一个字符串的结尾,比如 (b$) 就是匹配以字母b结尾的字符串 ^ 还有另个一个作用就是取反,比如[^xyz...] 表示匹配的字符串不包含xyz 需要注意的是:如果^出现在[]中一般表示取反,而出现在其他地方则是匹配字符串的开头 四、\d  \s  \w  ....就是匹配最多由1个字母或数字组成的字符串 六、test 、match 前面的大都是JS正则表达式的语法,而test则是用来检测字符串是否匹配某一个正则表达式,如果匹配就会返回true,反之则返回false...七、replace replace 本身是JavaScript字符串对象的一个方法,它允许接收两个参数: replace([RegExp|String],[String|Function]) 第1个参数可以是一个普通的字符串或是一个正则表达式...,每次回调都会传递以下参数: result: 本次匹配到的结果 $1,...$9: 正则表达式中有几个(),就会传递几个参数,$1~$9分别代表本次匹配中每个()提取的结果,最多9个 offset

    11.9K100

    你真的了解如何将 Nginx 配置为Web服务器吗

    含有通配符(含有 *),如:*.lufficc.com 或 api.* 。 正则表达式,以 ~ 开头。 通配符只能在开头或结尾,而且只能与一个 . 相邻。...location 指令接受两种类型的参数: 前缀字符串(路径名称) 正则表达式 对于前缀字符串参数, URIs 必须严格的以它开头。...如果找到匹配的前缀字符串,仍继续搜索正则表达式,但如果前缀字符串以 ^~ 开头,则不再检查正则表达式。 具体的搜索匹配流程如下: 将 URI 与所有的前缀字符串进行比较。...= 修饰符表明 URI 必须与前缀字符串相等(不是开始,而是相等),如果找到,则搜索停止。 如果找到的最长前缀匹配字符串以 ^~ 开头,则不再搜索正则表达式是否匹配。 存储匹配的最长前缀字符串。...: 重复0次或1次 + : 重复1次或更多次 *: 重复0次或更多次 \d :匹配数字 ^ : 匹配字符串的开始 $ : 匹配字符串的结束 {n} : 重复n次 {n,} : 重复n次或更多次 [c]

    2.4K70

    MySQL 正则表达式

    如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这些脚本的类似。 下表中的正则模式可应用于 REGEXP 操作符中。 模式 描述 ^ 匹配输入字符串的开始位置。...负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。 p1|p2|p3 匹配 p1 或 p2 或 p3。...例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 {n,m} m 和 n 均为非负整数,其中n 最多匹配 m 次。...'; 查找name字段中包含'mar'字符串的所有数据: mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar'; 查找name字段中以元音字符开头或以...'ok'字符串结尾的所有数据: mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

    74800

    你真的了解如何将 Nginx 配置为Web服务器吗

    含有通配符(含有 *),如:*.lufficc.com 或 api.* 。 正则表达式,以 ~ 开头。 通配符只能在开头或结尾,而且只能与一个 . 相邻。...location 指令接受两种类型的参数: 前缀字符串(路径名称) 正则表达式 对于前缀字符串参数, URIs 必须严格的以它开头。...如果找到匹配的前缀字符串,仍继续搜索正则表达式,但如果前缀字符串以 ^~ 开头,则不再检查正则表达式。 具体的搜索匹配流程如下: 将 URI 与所有的前缀字符串进行比较。...= 修饰符表明 URI 必须与前缀字符串相等(不是开始,而是相等),如果找到,则搜索停止。 如果找到的最长前缀匹配字符串以 ^~ 开头,则不再搜索正则表达式是否匹配。 存储匹配的最长前缀字符串。...: 重复0次或1次 + : 重复1次或更多次 *: 重复0次或更多次 \d :匹配数字 ^ : 匹配字符串的开始 $ : 匹配字符串的介绍 {n} : 重复n次 {n,} : 重复n次或更多次 [c]

    2.1K80

    【错误记录】C 语言中通过指针操作字符串常量出错记录 ( 只有 栈内存 或 堆内存 中的数据才能通过指针修改 | 不要通过指针修改常量区的字符串 )

    int len = strlen(str); // 指向字符串开始位置的指针 char *p_start = str; char *p_end = str + len - 1;...char *str = "sdfsdfsdabc4548411abc"; 字符串导致 , 该字符串存储在 全局区 的 常量区 ; char *str 指针指向了 常量区 ; 之后 , 通过指针尝试修改该常量区的字符串..., 字符串在 栈区 和 常量区各有一份 , 可以任意修改栈区的字符串 , 常量区的字符串仅用于赋值操作 ; // 将下面的字符串翻转 char str[] = "sdfsdfsdabc4548411abc...char str[] = "sdfsdfsdabc4548411abc"; // 计算字符串长度 int len = strlen(str); // 指向字符串开始位置的指针...char *p_start = str; char *p_end = str + len - 1; // 从两边向中间遍历 // 利用指向收尾的指针 , 交互指针指向的元素

    61410

    sed 命令+正则表达式

    假定正在过滤一个文本文件,对于一个有1 0个字符的脚本集,要求前4个字符之后为X C,匹配操作如下:. . . .X C. . . . 2、在行首以^匹配字符串或字符序列    ^只允许在一行的开始匹配字符或单词...其中,“^”定位符规定匹配模式必须出现在目标字符串的开头,“$”定位符规定匹配模式必须出现在目标对象的结尾,\b定位符规定匹配模式必须 出现在目标字符串的开头或结尾的两个边界之一,而“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内...,即匹配对象既不能作为目标字 符串的开头,也不能作为目标字符串的结尾。.../\bbom/   因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。   ...为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。

    3.4K20

    正则表达式

    问号代表前面的字符最多只可以出现一次(0 次、或 1 次)。 非打印字符 非打印字符也可以是正则表达式的组成部分。常见的非打印字符的转义序列: 字符 描述 \f 匹配一个换页符。...若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符: 特别字符 描述 $ 匹配输入字符串的结尾位置。...定位符 定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。...定位符用来描述字符串或单词的边界,^ 和 $ 分别指字符串的开始与结束,\b 描述单词的前或后边界,\B 表示非单词边界。 正则表达式的定位符有: 字符 描述 ^ 匹配输入字符串开始的位置。...它即出现在行首又出现在同一行的结尾。下面的表达式能确保指定的匹配只匹配章节而不匹配交叉引用。通过创建只匹配一行文本的开始和结尾的正则表达式,就可做到这一点。

    87810
    领券