正则表达式和匹配[关闭]

2023-11-21

以下是 PHP 正则表达式示例的示例列表。也许这对某人有帮助,因为管理员/或其他用户无法明确我正在尝试分享我的方法。

预匹配是否进行搜索(预替换是替代品)。

preg_match 有三个参数 - preg_match(FindWhat, FindWhere, GivingOutput);

示例1):

<?php
    // Everything expect letters and numbers
    $text = 'abc345fg@h';
    $newfilename = preg_match('/[^a-zA-Z0-9.]/', $text, $out);
    echo $out[0];
?>
Output will be:
@

preg_match 只查找一个结果(第一个找到的结果),有两个选项:[0] 或1.

示例2):在我们的搜索条件中找到所有内容(任何字符、单词..):

<?php
    $text = 'abcdefghijklmnopqrst';
    $newfilename = preg_match('/ij(.*?)mn/', $text, $out);
    echo $out[0];
    echo $out[1];
?>
[1] -gives only the inner search result (what we had in the brackets,  between "ij" and "mn"):
kl

[0] -gives the whole search result:
ijklmn

(注意,该选项1如果您在搜索条件中不使用括号(如我们上面的示例 1 所示),则不可用

例3):

如果您的目标文本有很多相同的出现,如下所示: $text = '你好用户吉米·琼斯, 这就是我。您好用户梅里·帕德斯,还是我。

现在,这里有两个不同的匹配,所以,我们需要使用预匹配全部

<?php
    $text = 'Hello user Jimmy Jones, it\'s me. Hello user Mery Pawders, it\'s me.';
    $newfilename = preg_match_all('/hello user (.*?) it\'s/', $text, $out);
    foreach ($out[1] as $found_one) {
        echo $found_one;
    }
    // Or use $out[0] for full search match
?>

Output will be:
Jimmy Jones,
Mery Pawders,

例4):在多种可能性中搜索:

<?php
    $text = 'member ACCOUNT7';
    preg_match("/ACCOUNT[123456789]/", $text, $out);
    echo $out[1];
?>

Output will be:
ACCOUNT7

实施例5):要查找字符串,当输入文本包含换行符时,必须使用s在最后;

<?php
    $text = 'one
    two
    three';
    preg_match("/one(.*?)three/s", $text, $out);
    echo $out[1];
?>

Output will be:
two

实施例6):您的搜索始终区分大小写。做一个案例不敏感的搜索、使用i最后(如果你愿意的话,没有s);

<?php
    $text = 'ONE TWO TREE';
    preg_match("/one(.*?)three/si", $text, $out);
    echo $out[1];
?>

实施例7): 寻找特殊字符(如 /".

<?php
    $text = 'hello Jimmy/Kroger ';
    preg_match("/Jimmy\/Kroger/", $text, $out);
    echo $out[0];
?>

现在,我们可以使用 ^ 运算符来反向搜索结果。

实施例8):查找除字母和数字之外的所有内容:

<?php
    $text = 'abc@*&^)($%';
    preg_match_all('/[^a-zA-Z0-9.]/', $text, $out);
    foreach ($out[0] as $varr) {
        echo $varr;
    }
?>
Output will be:
@*&^)($%

For search and replace,我们的结构有点不同,因为我们需要使用新变量。

实施例9):查找并替换所有内容而不是字母和数字与其他字符,使用此运算符:^

<?php
    $text = 'ab2sq)(&*(%$%^$@%n23f9';
    $variable = preg_replace('/[^a-zA-Z0-9.]/', 'a', $text);
    echo $variable;
?>
Output will be:
ab2sqn23f9

实施例10):搜索并在找到的结果中添加内容:

<?php
    $text = 'Hi, it\'s me, Niko from Austria';
    $variable = preg_replace('/(Niko.*?) from/', '$1 Gomez', $text);
    echo $variable;
?>
Output will be:

it's me, Niko Gomez Austria

实施例11):查找文本中的所有链接:

<?php
    $text = 'hi, my site is http://example.com, and on my page, at http://example.com/page37/blabla.html I wrote something..';
    preg_match_all("/[[:alpha:]]+:\/\/[^<>[:space:]]+[[:alnum:]\/]/",$text, $out);
    foreach($out[0] as $varr){
        echo $varr;
    }
?>
Output will be:
http://example.com
http://example.com/page37/blabla.html

实施例12):与示例 11 类似(但带有替换) - 查找文本中的链接并将其放入锚定标签中:

<?php
    $text = 'Hi, my site is http://example.com, and on my page, at http://example.com/page37/trid.html I wrote something..';
    $variable = preg_replace("/[[:alpha:]]+:\/\/[^<>[:space:]]+[[:alnum:]\/]/",'<a href="\\0">\\0</a>', $text);
    echo $variable;
?>

输出将是相同的句子,但链接将被锚定。

1) 提示:如果您只想检查一个字符串是否包含在另一字符串中,请不要使用 preg_match()。使用 stristr() 或 strpos() 代替,因为它们会更快。

2) **关于PHP正则表达式的更高级、具体的例子,使用Google,或者参见**完整选项和手册 at - http://www.php.net/manual/en/reference.pcre.pattern.syntax.php

(您可以很快查看此处列出的所有运营商 -
http://www.catswhocode.com/blog/15-php-regular-expressions-for-web-developers
http://www.noupe.com/php/php-regular-expressions.html
)

3)对于HTML代码,存在一种特殊的轻型PHP软件,称为DOM Parser。但有时,如果您很了解 PHP 正则表达式,您可能不需要 DOM 解析器。


试试这个正则表达式:

/^Shop.*0$/i

这个检查开头是否有商店,结尾是否有零。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式和匹配[关闭] 的相关文章

随机推荐

  • Windows UDP 套接字:recvfrom() 失败并出现错误 10054

    大家好 我正在尝试使用 Windows 套接字发送和接收 UDP 数据包 在 C 中 它一直运行良好 直到三天前程序停止正常运行 总结一下情况 当在我的套接字上调用 WSAPoll 时 即使没有启动服务器 它也总是返回用所有可能的 reve
  • 在 Perl 6 中继承私有属性

    我在文档中找不到任何内容 但似乎子类中无法访问其超类的私有变量 我对吗 class A has a class B is A has b method set a x a x my var B new var set a 5 say var
  • 使用 linq 表达式通过键列表过滤字典

    我有一本包含所有用户及其相应年龄的字典 Dictionary
  • 如何强制 DriverManager.getConnection() 方法调用超时?

    我有一个应用程序将与 MySQL 建立数据库连接并执行查询 有时 DriverManager getConnection 方法调用需要2秒 有时需要30秒 有没有办法控制这个方法2秒后超时 DriverManager setLoginTim
  • Flask SQLAlchemy 分页错误

    我有这个代码和all 方法和所有其他方法都适用于此 我已经查看了所有内容 我可以认为该方法paginate 致力于BaseQuery这也是Query app route app route index app route blog app
  • 如何修复 xamarin android 中的“不允许到 x 的明文 HTTP 流量”

    我的应用程序存在问题 不允许到 x 的明文 HTTP 流量 我已经尝试将 android usesCleartextTraffic true 放入我的清单中 但我想将 android usesCleartextTraffic 标志更改为 f
  • 在 F# 中,谁负责消息队列?

    在 F 中 如果我做类似的事情 让表单 新表单 文本 MyForm 在FSI中运行它 表单将正常显示和更新 甚至可以接收消息 然而 谁在泵送消息队列呢 这里没有 Application Run 调用 我有点困惑 正如 ildjarn 所说
  • CasperJS,使用测试框架并行浏览

    问题 我想知道是否可以进行并行浏览将测试框架放在一个脚本文件中 因此使用 tester 模块和 casperjs test 命令 我见过有些人创建了两个 casper 实例 CasperJS并发请求 and https groups goo
  • 使用 ShowDialog 和无边框窗口时,IsMouseOver 触发器不起作用

    我有两个Windows申请 其中之一是MainWindow另一个是设置 SettingsWindow单击设置按钮时打开ShowDialog并设置其Owner to MainWindow On the SettingsWindow我在窗口的最
  • Internet Explorer 11-出现安全证书错误提示问题

    我正在 IE11 中测试一个网站 它具有混合内容 http 和 https 在以前的版本中 会有一个提示询问我们应该允许安全证书错误的内容 但IE11中无此提示 站点崩溃 我尝试更改 高级选项 中的安全设置 但没有用 请建议 此行为与设置的
  • HTTP 响应有重定向,但没有往返?

    我希望浏览器反映除用于创建请求的 URL 之外的其他 URL 但无需往返服务器 我也许会这样做 POST form HTTP 1 1 然后返回 HTTP 1 1 200 OK Location hello 但这会导致重定向 浏览器将再次请求
  • 按值列表对查询结果排序

    我正在处理一个 sql 查询 它传递一个值列表作为参数 例如 select from ProductGroups where GroupID in 24 12 7 14 65 该列表由整个数据库中使用的关系构成 并且必须按此顺序保存 我想按
  • 关于让 xxhdpi 在 Android 模拟器中工作有什么建议吗?

    我尝试手动配置 AVD 以支持 xxhdpi 480 dpi 但是 Android 模拟器的最大支持 xhdpi 320 dpi 是的 文档说 xhdpi 可以扩展 但是 我希望看到它工作 我目前正在尝试从源代码构建 android 看看是
  • 角度指令 attrs.$observe

    我在网上找到了这个 Angular 指令来添加 Twitter 分享按钮 一切似乎都是显而易见的 但我不知道发生了什么attrs observe实际上正在做 我查看了文档但看不到 observe任何地方都可以引用 该指令似乎只是添加了hre
  • 如何检查线程是否位于同步块或方法内?

    我的 Java 应用程序使用两个线程 从历史上看 有同步方法和专用锁对象在使用 我需要知道当前线程是否有锁 以及它是通过方法还是对象 我怎样才能做到这一点 当进入同步方法时 VM 对当前对象设置锁 因此以下代码具有相同的效果 synchro
  • PostgreSQL UTF-8 二进制排序规则

    我想要一个排序规则 将 0x1234 的 UTF 8 编码排序为低于 0x1235 而不管 Unicode 标准中的字符映射如何 MySQL 为此使用 utf8 bin MSSQL 显然http msdn microsoft com en
  • 在Sql Server中将2个数字相除

    我正在进行 SQL Server 查询计算 除法总是给我零 SUM sl LINES ORDERED SUM sl LINES CONFIRMED SUM sl LINES CONFIRMED SUM sl LINES ORDERED AS
  • 使用 Azure WebJobs SDK 进行依赖注入?

    问题在于 Azure WebJobs SDK 仅支持公共静态方法作为作业入口点 这意味着无法实现构造函数 属性注入 我无法在官方 WebJobs SDK 文档 资源中找到有关此主题的任何内容 我遇到的唯一解决方案是基于这篇文章中描述的服务定
  • Chrome 失败错误代码

    I ve been searching for a while now and I can t find the exact list of all fail to load error code error description of
  • 正则表达式和匹配[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 以下是 PHP 正则表达式示例的示例列表 也许这对某人