从字符串中删除最后两个单词

2024-02-19

我完全陌生preg_replace,但下面的代码从我的字符串中删除了最后一个单词:

preg_replace('/\W\w+\s*(\W*)$/', '$1', $var);

我正在尝试修改它,以便它删除最后一个two words.

我唯一能想到的就是更换$1 with $2,但这似乎根本没有任何效果,可能只是愚蠢的:/

有问题的字符串看起来有点像这样:

Lorem ipsum dolor sit amet. Source: LOREM

我想删除Source: LOREM


一个简单的正则表达式可以匹配字符串末尾的空格,后跟任意数量的字母(或冒号),后跟空格,后跟任意数量的字母:

$str = "Lorem ipsum dolor sit amet. Source: LOREM";
$str = preg_replace( "/\s[a-z:]+\s[a-z]+$/i", "", $str );

// Lorem ipsum dolor sit amet.
echo $str;

表达式分解如下:

\s       // Single space
[a-z:]+  // Any letter, a to z, or a colon, 1 or more times
\s       // Single space
[a-z]+   // Any letter, a to z, 1 or more times
$        // End of string

Demo: http://codepad.org/G22LnDDY http://codepad.org/G22LnDDY

另一种方法是使用explode创建一个单词数组,并删除最后两个。

$str = "Lorem ipsum dolor sit amet. Source: LOREM";
$words = explode( " ", $str );
array_splice( $words, -2 );

// Lorem ipsum dolor sit amet.
echo implode( " ", $words );

Demo: http://codepad.org/6XwqvwuP http://codepad.org/6XwqvwuP

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

从字符串中删除最后两个单词 的相关文章

  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • 如何分割字符串并在ant脚本的for循环中使用它?

    我在 ant 属性中有一个机器 IP 列表
  • 如何使用 phpunit 运行单个测试方法?

    我正在努力运行一个名为testSaveAndDrop在文件中escalation EscalationGroupTest php with phpunit 我尝试了以下组合 phpunit EscalationGroupTest escal
  • 如何解压 PHP/Lumen/Laravel 的 gzip 请求?

    我收到来自第三方的 gzip 编码文本请求 1mb 所以这是有道理的 我的测试路线 router gt post testgzip function Illuminate Http Request request decompressed
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • Java中有没有一种方法可以通过名称实例化一个类?

    我正在寻找问题 从字符串名称实例化一个类 https stackoverflow com questions 9854900 instantiate an class from its string name它描述了如何在有名称的情况下实例
  • 如何包含字符串标头?

    我正在尝试了解strings 但不同的来源告诉我要包含不同的标头 有人说用
  • “使用未定义常量”注意,但该常量应该被定义

    共有三个文件 common php controller php 和 user php 文件 common php 如下所示 文件controller php看起来像 文件 user php 如下所示 执行脚本时 会给出通知 注意 使用未定
  • string.Empty 与 null。您使用哪一个?

    最近工作的同事告诉我不要使用string Empty设置字符串变量时但使用null因为它污染了堆栈 他说不做 string myString string Empty but do string mystring null 真的有关系吗 我
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • Magento - 自定义支付模块

    这是一个非常普遍的问题 但这里是 我正在尝试在 Magento 中创建一个自定义支付模块 我创建了一个 常规 模块 可以连接到 Magento 事件 观察者模型 但是我如何告诉 Magento 将模块视为支付模块 以便它显示在管理后端和结账
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多

随机推荐

  • 使用CSS停止div调整父div的大小

    http jsfiddle net ETkkR http jsfiddle net ETkkR div div class post img src http dummyimage com 180x120 000 fff alt Image
  • 关闭别人的代码审查 TFS 2015

    我负责的开发团队人员流动率很高 我有 100 个处于 已请求 状态的代码审查 因为开发人员在离开公司之前没有关闭它们 我通过右键单击并分配给自己在 TFS 中获得了这些所有权 但它并没有给我关闭的选项 根据这个链接 https social
  • 在 IE 中使用 JavaScript 中的 XMLSerializer 时,SVG 标记上出现不需要的命名空间

    我正在尝试使用 JavaScript DOM APIXML序列化器 https developer mozilla org en US docs XMLSerializer将 SVG 元素转换为其代表性标记 这是用于创建元素并将其序列化的基
  • 为什么 C 中的复合文字可以修改

    人们通常会将 不可修改 与术语 字面量 联系起来 char str Hello World str B Bus Error 然而 当使用复合文字时 我很快发现它们是完全可修改的 查看生成的机器代码 您会看到它们被推入堆栈 char str
  • MySQL 跳过名称解析

    我在 1 台专用服务器中使用 MariaDB MySQL 所有数据库和 PHP 都在本地服务器中 我不使用远程服务器 运行 mysqltuner 时 我收到使用 跳过名称解析 所以我在 my cnf 中添加了这段代码 skip name r
  • jetty如何处理多个请求

    我已经使用 jetty tomcat 应用服务器处理 Spring Web 应用程序大约两年了 但是我仍然困惑的是这些服务器中如何处理多个请求 我知道 spring 对于创建单例很有帮助 但我的理解仅限于此 有人可以指出任何可以帮助我了解如
  • ruby 中是否可以取消定义变量?

    在 ruby 中 有没有办法在定义变量或常量后 取消定义 变量或常量 在我们的 Rails 环境中 我们将三个内容之一定义为true 取决于环境 TESTING DEVELOPMENT or PRODUCTION 然后 在控制器代码中 我们
  • 在Fabric js中的两个对象之间添加动画

    我有一个非常基本的应用程序 可让您创建形状并用线连接它们 为此 您需要执行以下操作 Example 1 Click new animation 2 add rectangle 3 add child 4 add circle 您可以移动形状
  • 将基本脚本转换为 Objective C(货币格式)

    我有这个基本的类似脚本 我需要将其转换为 Objective C 它将大单位的金钱转换为缩短的版本 即 1 2m 等 我已经完成了大部分转换 但最大的问题是我我就在最后 原来的基本代码是 Basic Code Function ShortC
  • mysqli_result 类的对象无法转换为字符串返回 mysql 平均值 [重复]

    这个问题在这里已经有答案了 有人能解释一下我如何输出下面的sql结果吗 当前收到 mysqli result 类的对象无法转换为字符串 sql SELECT AVG ab satisfactionScore AS AverageSatisf
  • Jenkins 管道作业:从字符串参数设置睡眠时间?

    我是 Jenkins Pipeline 工作的新手 我面临着一个无法解决的问题 我有一个带有硬编码的舞台sleep秒值 stage wait prior starting smoke testing echo Waiting 5 minut
  • 抑制 C 宏变量替换

    我有这段代码 实际上是垃圾收集 Forth 系统解释器的一部分 define PRIMITIVE name do VocabEntry entry VocabEntry gc alloc sizeof VocabEntry entry gt
  • 如何让 Capistrano 3 使用 RVM ruby​​?

    Gemfile gem capistrano gt 3 0 0 gem capistrano rails gem capistrano bundler gem capistrano rvm gem capistrano3 puma 部署 r
  • AspNetCore 2.1 中使用 WsFederation 时出现注销 (LogOut) 错误

    我在 ASP NET Core 2 1 应用程序中注销 注销 时收到以下错误 没有为 联合 方案注册注销身份验证处理程序 注册的注销方案有 WsFederation Cookies 您是否忘记调用 AddAuthentication Add
  • 撇号打印为 â\x80\x99

    import requests from bs4 import BeautifulSoup import re source url requests get http www nytimes com pages business inde
  • PostgreSQL:在 Ubuntu 上重置 PostgreSQL 的密码 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 在 Ubuntu 中 我安装了 PostgreSQL 数据库并为服务器创建了一个超级用户 如果我忘记了 postgresql 超级用户的密码 如何为该
  • vue-router - 使用新导航取消从“/”到“/password”的导航

    尝试导航到密码页面 vue router 抛出此错误 Uncaught in promise Error Navigation cancelled from to password with a new navigation 导航到密码页面
  • python 多处理/线程清理

    我有一个 python 工具 基本上有这样的设置 main process P1 gt spawns a process P2 that starts a tcp connection gt spawns a thread T1 that
  • 如何从keycloak中的自定义客户端获取角色?

    为了获得自定义客户端中的角色 我知道我需要执行两个 API 一种是获取访问令牌 一种是获取角色 我的疑问是 我应该通过在标头中发送 admin CLI 详细信息来获取 accessToken 还是因为我想要我创建的自定义客户端的角色 因为
  • 从字符串中删除最后两个单词

    我完全陌生preg replace 但下面的代码从我的字符串中删除了最后一个单词 preg replace W w s W 1 var 我正在尝试修改它 以便它删除最后一个two words 我唯一能想到的就是更换 1 with 2 但这似