首页
学习
活动
专区
工具
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 将匹配文件包含字符al1在一行所有字符串/etc/hosts. # awk '/[al1]/{print}' /etc/hosts 下一个示例匹配以Kk开头字符串T: #

2.3K10

Java 检查空字符串(null空白)方法有几种?

作者:牛旦教育IT课堂 来源:https://www.toutiao.com/i6713087515768652301 1、摘要 在本文中,我们将介绍些方法检查Java字符串(空空白符串)。...trim方法在执行判空前,会删除开头结尾空白(空格)字符,我们可以这样来写空白字符串判定方法: boolean isBlankString(String string) { return string...\\s*\\Z).+")String someString; 给定正则表达式会确保空字符串空白符串无效。...如果我们针对Android目标,我们可以将JRE风格Guava添加到我们pom: com.google.guava <...如果要坚持使用普通Java,我们可以将字符串原生trim与isEmptylength组合使用。对于Bean验证,可以使用正则表达式

11.7K20
  • 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.5K30

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

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

    90720

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

    1.8K40

    正则表达式

    许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大正则表达式引擎。 正则表达式这个概念最初是由Unix工具软件(例如sedgrep)普及开。...生成数据文件 [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任意字符

    53130

    python中正则表达式学习

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

    46010

    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

    PHP基本规则

    因此,在绝大多数可以使用单引号场合,都禁止使用双引号。根据上述分析,应该必须使用单引号情况如下: 字符串为固定值,包含"\t"等特殊转义字符。 数组固定下标,如$array['key']。...除非字符串中有特殊情况,否则,在程序以及HTML允许出现两个连续空格。 任何情况下,PHP程序空白行应当包含任何TAB空格。同时,任何程序行尾也不能出现多余TAB空格。...在对象方法,声明为privateprotected,名称字符必须是一个单独下划线,这是唯一下划线在方法名字用法。声明为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]:

    1K10

    【错误记录】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; // 从两边向中间遍历 // 利用指向收尾指针 , 交互指针指向元素

    60810

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

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

    2.4K70

    MySQL 正则表达式

    如果您了解PHPPerl,那么操作起来就非常简单,因为MySQL正则表达式匹配与这些脚本类似。 下表正则模式可应用于 REGEXP 操作符。 模式 描述 ^ 匹配输入字符串开始位置。...负值字符集合。匹配未包含任意字符。例如, '[^abc]' 可以匹配 "plain" 'p'。 p1|p2|p3 匹配 p1 p2 p3。...例如,'o{2}' 不能匹配 "Bob" 'o',但是能匹配 "food" 两个 o。 {n,m} m n 均为非负整数,其中n <= m。最少匹配 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$';

    74500

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

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

    2.1K80

    sed 命令+正则表达式

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

    3.4K20

    正则表达式

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

    87410
    领券