如何在 PHP 中使用正则表达式获取每个单词的首字母

2023-11-25

我有一个字符串变量,我想获取它的每个单词的第一个字母。 我希望最终结果是第一个字母的数组。

$language = 'Sample Language';
preg_match('/(\b[a-z])+/i', $language, $match);
print_r($match);

我得到的只是第一个单词的第一个字母。 上面打印 Array([0]=>S [1]=>S)

如果我把它改成

preg_match('/(\bL)+/i', $language, $match);

我可以找到第二个单词的 L 的匹配项。很明显,在第一场比赛之后,它就不再寻找剩下的比赛了。我不太擅长正则表达式。谁能指出我做错了什么?

输入字符串中的单词并不总是用空格分隔。这是相当不可预测的。我遇到过的一些格式: “主要语言:语言” “主要语言、语言” “MainLanguage:Language-SubLanguage”这里我想得到M,L和S


首先使用preg_match_all为此,其次你不需要+量词:

$language = 'Sample Language';
preg_match_all('/\b\w/', $language, $match);
print_r($match);
  • \b:匹配单词边界,单词边界是将单词字符与非单词字符分开的位置。单词字符通常是[a-zA-Z0-9_].
  • \w:匹配单词字符。
  • \b\w匹配位于单词边界位置的单词字符,在本例中,紧接在分隔单词的空格或字符串开头之后。

如果您想要驼峰式情况,那么您可以将前一个表达式与另一个表达式结合起来,如下所示:

\b\w|(?<=\p{Ll})\p{Lu}

表达式的第二部分,即(?<=\w)\p{Lu}如果是大写字符,则应匹配任何单词字符\p{Lu}跟随小写字母\p{Ll}它应该涵盖驼峰式情况,原始表达式涵盖连字符时的情况-用于分隔两个词。

Regex101 演示

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

如何在 PHP 中使用正则表达式获取每个单词的首字母 的相关文章

随机推荐

  • 使用 CQL 选择 cassandra 表中的 2000 个最新日志条目(最新版本)

    如何按 timeuuid 查询和过滤 即假设您有一个表 create table mystuff uuid timeuuid primary key stuff text 即你怎么做 select uuid unixTimestampOf
  • 在函数中获取点击元素的 ID

    我想获取我点击的元素的 ID 我将该函数放在 onclick 元素中 如下所示 a class first active href home Home a 这是在函数中 function markActiveLink alert this
  • 获取可变批次尺寸的大小

    假设网络的输入是placeholder具有可变批量大小 即 x tf placeholder shape None 是否有可能得到以下形状x喂完后 tf shape x 0 仍然返回None If x有一个可变的批量大小 获得实际形状的唯一
  • 如何向 Django-Registration 表单添加占位符

    我正在为我的项目使用 django registration 在我的registration form html file form username form email other fields 我想为每个字段设置占位符 但这是一种内置
  • 使用 JavaScript 更改 HTML 中的链接文本

    我有一个 html 页面 其中有一个名为 open 的链接 单击链接后 文本 打开 应更改为 关闭 我该怎么做呢 Script
  • Webdriver:java.net.BindException:地址已在使用中:连接

    运行 webdriver 时 运行 3 分钟后 出现以下异常并且 Webdriver 崩溃 我仅使用一个 Webdriver 实例和一个 FirefoxDriver 配置文件 Exception in thread main org ope
  • 如何使用C#提交http表单

    我有一个简单的 html 文件 例如
  • PostgreSQL 视图:在另一个计算字段中引用一个计算字段

    我有同样的问题 1895500 但使用的是 PostgreSQL 而不是 MySQL 如何定义具有计算字段的视图 例如 mytable col1 2 AS times two 并创建另一个基于第一个计算字段的计算字段 times two 2
  • _imp 和 __imp 有什么区别?

    当我在 Qt Creator 中工作时尝试使用 MinGW 链接到 MSVC 编译的库时 遇到了一个有趣的错误 链接器抱怨缺少一个符号 就像 imp FunctionName 当我意识到这是由于缺少 extern C 并修复它时 我还使用
  • 为 MySQL 选择数据类型?

    我已经研究和阅读有关 SQL 数据类型几天了 我知道 我知道 这不是很长 对我来说很难掌握的事情之一是如何为 SQL 数据类型选择最佳的数据类型可扩展性 效率和易于访问 我认为如何选择基本数据类型 即 int 与 varchar 非常简单
  • 设置表格行高

    我缺乏 CSS 技能 这让我很头疼 如下图所示 从 firebug 捕获 使用名为 Vaadin 的类似 GWT 的框架 我为 Table 组件指定了类名m2m 模态表我想为该表中的四行设置一个最小高度 但是 我似乎无法让它工作 正如您从图
  • JavaScript:深度比较

    我正在检查这个问题JavaScript 深度比较提问者的解决方案并没有说服我 所以我尝试分析问题并提出了这个 var obj here 2 console log deepEqual obj obj true console log dee
  • React Native 不从 android 中的 SD 卡加载图像

    在 React 本机图像组件中从相机拍照后 我尝试从外部 SD 卡加载图像 如下所示 但它没有在 Android 中渲染 我什至检查了该位置是否缺少图像 但这不是问题 但在 iOS 上 它可以很好地在从相机拍照后从位置加载图像
  • 点对点如何通过路由器工作?

    一台电脑如何通过互联网连接到另一台电脑 例如 程序侦听 PC 1 上的连接 PC 1 位于路由器 1 后面 PC 2 有一个客户端程序尝试连接到 PC 1 在这种情况下 用作听力程序的正确技术 技巧是什么 This 布莱恩 福特的文章解释跨
  • 使用.htaccess,阻止用户访问资源目录,但允许源代码访问资源

    如果我的问题不清楚 我很抱歉 但我不太懂这些行话 我所说的 资源目录 是指我的 css php 脚本 图像 javascript 等 我在图像目录中使用了一个 htaccess 文件 其中包含 deny from all 去做这个 尽管这阻
  • 不安全的代码无法在 Visual Studio 2015 上编译

    我正在尝试在新的 DNX4 6 核心上编译程序 但由于以下原因无法编译 error CS0227 Unsafe code may only appear if compiling with unsafe 这是我的代码 CompilerGen
  • 无法在 Jersey 2.0 中为 Jackson 启用基于 POJO 的 JSON 绑定支持

    我使用 Jersey 生成 JSON 通过 Jackson 进行 POJO 映射 和 Jetty 从 main 方法开始 它非常适合 Jersey 1 x ServletHolder sh new ServletHolder Servlet
  • 仅按可见系列过滤 Highcharts 的图例

    我们正在使用 Highcharts 并有一些复杂的图表 图表上大约有 75 个系列 该系列并未在整个图表中使用 而仅在三个月范围内使用 因此 我们每年大约有 15 个系列 整个图表涵盖五年 大约 15 5 75 个系列 但是 Highcha
  • 在 dart 中将 HTML 字符串解析为 DOM

    In dart 我想解析一个字符串 到 DOM 以便我可以操作生成的 DOM 中的元素 我知道在 JQuery 中 有 parseHTML 来处理它 但我在 dart 中找不到类似的东西 谢谢 我尝试过html2lib 但输出Documen
  • 如何在 PHP 中使用正则表达式获取每个单词的首字母

    我有一个字符串变量 我想获取它的每个单词的第一个字母 我希望最终结果是第一个字母的数组 language Sample Language preg match b a z i language match print r match 我得到