在 strpos() 的字符串中使用正则表达式

2023-12-23

我想让脚本搜索 $open_email_msg ,不同的电子邮件将有不同的信息,但格式相同,如下所示。

我并没有真正使用正则表达式太多,但我想做的是每当我用它来搜索字符串时,它都会搜索“标题:[标题数据]”,“类别:[类别数据]。我问因为我不认为类似的事情

strpos($open_email_msg, "Title: (*^)"); 

甚至会起作用。

这只是整个代码的一个片段,其余部分将信息插入 MySQL 表中,然后发布到网站上的新闻文章中。

有人可以帮我找到解决方案吗?

严格的电子邮件格式:

新闻动态
标题:文章标题
标签: 标签1 标签2
类别:文章类别、第二文章类别
片段: 文章片段。
消息:文章消息。图片。更多文字,更多文字。 Lorem ipsum dolor 坐 amet。

<?php
    //These functions searches the open e-mail for the the prefix defining strings.
        //Need a function to search after the space after the strings because the subject, categories, snippet, tags and message are constant-changing.
    $subject = strpos($open_email_msg, "Title:");       //Searches the open e-mail for the string "Title" 
        $subject = str_replace("Title: ", "" ,$subject);
    $categories = strpos($open_email_msg, "Categories:");       //Searches the open e-mail for the string "Categories"
    $snippet = strpos($open_email_msg,"Snippet");           //Searches the open e-mail for the string "Snippet"
    $content = strpos($open_email_msg, "Message");  //Searches the open-email for the string "Message"
    $tags = str_replace(' ',',',$subject); //DDIE
    $uri =  str_replace(' ','-',$subject); //DDIE
    $when = strtotime("now");   //date article was posted
?>

尝试使用PREG_OFFSET_CAPTURE标志为preg_match http://php.net/manual/en/function.preg-match.php。像这样的事情:

preg_match('/Title: .*/', $open_email_msg, $matches, PREG_OFFSET_CAPTURE);
echo $matches[0][1];

这应该给你字符串的初始位置。

请注意,我使用的正则表达式可能是错误的,并且没有考虑行结尾和其他内容,但这是另一个主题。 :)

EDIT。对于你想要的更好的解决方案(如果我理解正确的话)将是这样的:

$title = preg_match('/Title: (.*)/', $open_email_msg, $matches) ? $matches[1] : '';

然后你将标题放入$title变量,如果未找到标题则为空字符串。

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

在 strpos() 的字符串中使用正则表达式 的相关文章

随机推荐

  • 使用 MVC5 和 OWIN 自定义身份

    我尝试使用 MVC5 和 OWIN 身份验证向网站的 ApplicationUser 添加自定义属性 我读了https stackoverflow com a 10524305 264607 https stackoverflow com
  • C# 组件引发的异常消息是否通过互操作传递到 C++?

    如果我在 C 类中实现 COM 接口 该接口将从 C 模块调用 那么在发生故障时 C 代码应该抛出异常 这将由互操作层编组为 HRESULT 失败代码 但是传递给 Exception 构造函数的任何消息文本 或其他信息 是否也可用于调用 C
  • Apache Tiles 中的 Struts2 MessageResources

    我尝试在图块中使用 Struts2 消息资源 但没有成功 2 1 4表达 例如 以下资源可在 JSP
  • python opencv如何改变HSV通道的色调

    如何通过动态hue offset改变hue通道的值来实现img update hue offset 函数 实现img update hue offset 函数 实现此提交 1 通过动态hue offset更改色调通道的值 import nu
  • 使用 AngularJS 处理 DOM

    我知道操作 DOM 违反了 Angular 的规则 但在这种情况下 我必须横向 DOM 来修改同级节点 在 jQuery 中你可以做这样的事情 this parent addClass loading 角度元素包裹着jqLite默认情况下
  • 如何通过 Python Azure SDK 了解 Azure blob 对象的大小

    继面向 Python 开发人员的 Microsoft Azure 文档 https learn microsoft com en us python api azure storage blob azure storage blob mod
  • 无法将类型“System.Collections.Generic.List`1[Item]”的对象强制转换为类型“ItemList”

    出于某种原因 我的老板喜欢创建自定义类型来表示通用列表 即使在大多数情况下 他的自定义类型没有成员 我认为他只是懒惰 不喜欢输入列表或其他内容 但对我来说这是蹩脚的 并且让我对下面的问题感到非常头痛 情况要点 public class It
  • spring data jpa多重排序

    我正在使用 spring data jpa 和 JQGrid 我需要基于多个排序参数的响应 我尝试使用 sort parameter column a column b 和 sort order asc 但出现异常 pojo 中没有找到属性
  • 禁用 PDFView 上的缩放 (iOS)

    如何禁用 PDFView 的缩放功能 我已经尝试过解决方案here https stackoverflow com questions 54829190 how to disable zoom in and zoom out in pdfv
  • 为什么 object 不默认为零?

    在 Delphi 中 从 TObject 继承的变量的记录行为是默认值 nil 然而 我遇到过一种情况 情况并非如此 通过 IDE F9 运行以下代码示例会产生混合结果 var objTemp TMemDataSet begin if ob
  • 有没有办法使用 Django REST 框架中的可浏览 API 上传文件?

    我需要测试一个上传文件的 API 如何通过可浏览的 API 执行此操作 可浏览的 API 页面如下所示 有没有办法使用这个接口上传文件 views py class TrainingData APIView API for getting
  • 从图像创建视频会对某些图像格式产生黑屏视频[重复]

    这个问题在这里已经有答案了 我正在使用下面的命令从图像创建视频 该命令适用于大多数图像 但对于 png 图像 创建的视频无法播放 我只是得到黑屏 String command new String y f concat safe 0 i s
  • 找不到org.springframework.util.ClassUtils.getMethod并且无法初始化DefaultConversionService

    运行我的应用程序后 它会在控制台中显示以下错误 我研究了这个问题 但它answer https stackoverflow com questions 20851236 spring mvc http status 500 servlet
  • Django 模型管理器是否需要 using=self._db

    在使用 Django 用户模型时 我注意到模型管理器包括using self db作用于数据库时的参数 如果我只使用单个数据库 这有必要吗 什么是using self db除了指定数据库之外 还可以执行其他操作 如果添加另一个数据库 这是否
  • gdb 回溯

    我刚刚尝试过使用 gdb回溯Linux http www backtrack linux org 我必须说这太棒了 我想知道 backtrack 中的 gdb 是如何配置为这样的 当我设置断点时 会打印所有寄存器值 堆栈的一部分 数据部分的
  • 适用于 Android 的 Google 环聊 API

    您知道如何将 Google Hangout 集成到 Android 应用程序中吗 我没有看到任何当前可用的 API 使用 WebView 是一种选择吗 目前没有任何内容 我不相信 WebView 版本会起作用 因为环聊需要谷歌安装的相机插件
  • Python Fizzbuzz 循环问题

    我已经搜索了大约一个小时的答案 似乎大多数人都以与我不同的方式编码 fizzbuzz 然而 在尝试了一切方法来找出为什么这个简单的代码不起作用之后 我感到非常沮丧 谁能指出我确定遇到的简单问题 代码运行但只返回值 1 def fizzbuz
  • Android L Nexus 5 上的材料设计

    我的应用程序在 Android L 上崩溃 但在 Android Kitkat 上运行 布局上也没有 RippleDrawable 这是异常和布局 XML 布局
  • ocaml 命令行找不到“topfind”

    我已经安装了顶级 并且有 OCAML TOPLEVEL PATH 设置 export OCAML TOPLEVEL PATH Users smcho opam system lib toplevel 我检查该目录是否存在 并且有一个文件to
  • 在 strpos() 的字符串中使用正则表达式

    我想让脚本搜索 open email msg 不同的电子邮件将有不同的信息 但格式相同 如下所示 我并没有真正使用正则表达式太多 但我想做的是每当我用它来搜索字符串时 它都会搜索 标题 标题数据 类别 类别数据 我问因为我不认为类似的事情