PHP 中将大写驼峰式命名法分解为大写驼峰式命名法

2024-02-10

现在,我正在通过分割、切片和内爆来实现这一点:

$exploded = implode(' ',array_slice(preg_split('/(?=[A-Z])/','ThisIsATest'),1));
//$exploded = "This Is A Test"

更漂亮的版本:

$capital_split = preg_split('/(?=[A-Z])/','ThisIsATest');
$blank_first_ignored = array_slice($capital_split,1);
$exploded = implode(' ',$blank_first_ignored);

然而,问题是当你输入类似'SometimesPDFFilesHappen',我的实现将(错误地)解释为'Sometimes P D F Files Happen'.

我怎样才能(简单地)让我的脚本压缩'P D F' to 'PDF'?

我对何时拆分的资格是从第一个大写字母开始,并在最后一个大写字母之前结束,以容纳下一个单词。

是的,我知道有一些含糊之处,例如'ThisIsAPDFTest',这将被解释为'This Is APDF Test'。但是,我想不出一种“聪明”的方法来避免这种情况,所以这是一个可以接受的妥协。


$input = "SomePDFFile";

$pass1 = preg_replace("/([a-z])([A-Z])/","\\1 \\2",$input);
$pass2 = preg_replace("/([A-Z])([A-Z][a-z])/","\\1 \\2",$pass1);
echo $pass2;

或者,如果您非常热衷于发表一项声明:

preg_replace("/(([a-z])([A-Z])|([A-Z])([A-Z][a-z]))/","\\2\\4 \\3\\5",$input);

这非常难看。

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

PHP 中将大写驼峰式命名法分解为大写驼峰式命名法 的相关文章

  • PHP DBlib PDO 问题

    我正在尝试通过 php 连接到 MSSQL 服务器 但我的 pdo 连接给我带来了困难和我不太理解的错误 我在下面粘贴的代码一周前运行得很好 突然间它就停止了 没有任何人进行任何更改 我仍然可以连接到服务器并直接从命令行运行查询 但我在 p
  • 如何使用 Perl 和正则表达式将 SQL 文档转换为 ColdFusion 脚本?

    我需要将 SQL 语句文档转换为 ColdFusion 文档 我对正则表达式只有一点经验 而且我是 Perl 超级新手 我昨天刚刚自学了它的基础知识 所以我可以完成这项任务 我正在尝试用 Perl 编写的脚本匹配和替换模式 该脚本保存为 B
  • C#中如何从字符串中提取十进制数

    string sentence X10 cats Y20 dogs 40 fish and 1 programmer string digits Regex Split sentence D 对于此代码 我在数字数组中获取这些值 10 20
  • 带变量的 AWK 负正则表达式

    我在 bash 脚本中使用 awk 来比较两个文件以获取不匹配的行 我需要将第二个文件的所有三个字段 作为一个模式 与第一个文件的所有行进行比较 第一个文件 chr1 9997 10330 HumanGM18558 peak 1 150 1
  • 是否有 JavaScript 正则表达式相当于 Java 正则表达式中的交集 (&&) 运算符? [复制]

    这个问题在这里已经有答案了 在 Java 正则表达式中 您可以使用交集运算符 在字符类中以简洁地定义它们 例如 a z def d e or f a z bc a through z except for b and c JavaScrip
  • 这是过滤数据并防止 SQL 注入和其他攻击的安全方法吗?

    我创建了两个简单的函数来在插入数据进入 mysql 查询之前对其进行过滤 对于表单字段 我还使用正则表达式来单独检查每个字段 Form filter function filter var HTML is not allowed var s
  • CodeIgniter/PHP - 从视图内调用视图

    基本上 对于我的网络应用程序 我正在尝试更好地组织它 目前 每次我想加载页面时 我都必须从控制器中执行此操作 如下所示 this gt load gt view subviews template headerview this gt lo
  • 如果端口不是 80,.htaccess 重定向到错误页面

    我正在运行一个便携式服务器 http www server2go web de 通过 USB 棒 问题是我还在我的本地计算机上安装了 WAMP 并且 Apache 不知何故在 Windows 启动时启动 因为一些我现在不记得的随机原因并且无
  • PHP FTP_PUT 上传到目录

    我正在自学PHP 一本名为 PHP完全参考 PHP5 2 的书 我目前正在使用第 11 章 FTP 上传 删除 makedir 等 但遇到了一些本书未涵盖的问题 根据我的教科书 这是上传到服务器的简单代码 connect ftp conne
  • 与 PHP 相比,Python 与 HTML 的“流畅”程度如何?

    我正在考虑从使用 PHP 切换到使用 Python 来开发 Web 应用程序 但我想知道 Python 是否像 PHP 一样擅长在 HTML 中穿插 本质上 我发现它使用起来非常简单 直观将 PHP 放在我想要的位置 然后可以随意安排 组织
  • 除了使用正则表达式之外,在 Swift 中解析 HTML

    下面是我想在 Swift 中解析的 HTML 代码 td class pinyin a href rsc audio voice pinyin pz yi1 mp3 span class mpt1 y span a a href rsc a
  • 使用活动目录对 Intranet 站点上的用户进行身份验证

    我建立了一个 内联网 站点 它有自己的登录系统 用户注册为新用户 并使用其上的用户名 密码登录该站点 但是 现在我想扩展它 让 Intranet 站点使用现有的 ActiveDirectory 进行身份验证 这就是我正在寻找的 前进 当用户
  • 将 jQuery 与 Selenium WebDriver 结合使用 - 如何将 JSON 对象转换为 WebElement?

    我正在使用 Selenium WebDriver 我想执行 jQuery 代码来查找一些元素 我的代码如下 public function uploadGrantDoc script return itemlist grant file u
  • 需要正则表达式帮助

    我正在尝试替换两次或多次出现的 br like br br br 标签与两个一起 br br 具有以下模式 Pattern brTagPattern Pattern compile lt s br s s gt s 2 Pattern CA
  • php 包含打印 1

    我编写了以下代码 当我将 include 函数与旨在输出到页面的函数 例如 或 echo include foo php 结合使用时 它会返回包含内容 但在已包含的内容后面带有 1 echo include foo php 应该 inclu
  • 为什么“script”命令会生成 ^[ 和 ^M 字符以及如何使用 vim 搜索和替换删除它们?

    在linux上 使用bash shell 当我使用script命令时 生成的文件称为typescript 当我用 vim 打开该文件时 每一行都包含 M字符 并且有几行 由于我的彩色命令提示符 包含一个字符 我想用任何东西替换这些字符 从而
  • php - 重定向ajax请求[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 php wordpress 中重定向 ajax 请求 I tried header Location http redirect
  • PHP 何时实现了函数使用闭包? [复制]

    这个问题在这里已经有答案了 我在 PHP 手册中找不到解释的部分use 我有代码 num 0 array walk recursive REQUEST function mValue use num num 我的 Eclipse 抱怨 Pa
  • PHP 中正确的存储库模式设计?

    前言 我尝试在具有关系数据库的 MVC 架构中使用存储库模式 我最近开始学习 PHP 中的 TDD 并且我意识到我的数据库与应用程序的其余部分耦合得太紧密 我读过有关存储库并使用国际奥委会容器 http laravel com docs 4
  • 安全地评估简单的数学

    我想知道是否有一种安全的方法来评估数学 例如 2 2 10000 12000 10000 20 2 2 40 20 23 12 无需使用eval 因为输入可以来自任何用户 我需要实现的只是整数的加法和减法 是否有任何已经存在的代码片段 或者

随机推荐

  • Pygame 使用 time.sleep 等待 x 秒而不执行上面的代码

    我正在尝试在 pygame 中重新创建 Pong 并尝试根据得分者将网的颜色更改为红色或绿色 我可以在某人得分后将其保持为红色或绿色 直到另一个人得分 但是 我想在 3 秒后将网络颜色更改回黑色 我尝试使用 time sleep 3 但每当
  • 如何使用 Flask 将 JavaScript 连接到 Python 脚本?

    我用 HTML CSS 创建了一个网站 我还使用 Javascript 来处理事件 单击按钮 现在我想将 Python 脚本与其连接 更重要的是 将 Python 函数的结果返回到我的网站并在那里显示 使用 它们 考虑这样的事情 我有一个带
  • 如何创建“递归sql”

    我想建立 链接 例如 我有 5 个帖子 id 1 id 2 id 3 id 4 id 5 他们有一个序列 id 1 nextId 2 id 2 nextId 4 id 3 下一个Id 0 id 4 nextId 3 id 5 nextId
  • Azure Python SDK - 与 Azure AD 交互

    我有一个服务主体帐户 用于自动化计算和资源管理对象 不会出现任何问题 我似乎无法与之交互的是房子的 Azure AD 一侧 我正在得到一个 azure graphrbac models graph error GraphErrorExcep
  • 使用 BASH 或 awk 或 sed 或其他方式删除文件的前两行

    我试图通过不将文件打印到另一个文件来删除文件的前两行 我不是在寻找一些奇特的东西 这是我对 awk 的 失败的 尝试 awk NR gt 2 print myfile 这会抛出以下错误 awk NR gt 2 print awk synta
  • Java静态上下文

    我正在使用一个具有非静态方法调用的包 它不会让我从静态上下文中调用此方法 我无法更改非静态方法 如何调用该方法 从该类创建一个对象并调用该对象的方法 import com acme myclass MyClass obj new MyCla
  • 创建新的 Azure Cosmos DB 时缺少位置选项

    我想在我的免费 MPN 订阅下创建一个新的 Azure Cosmos DB 并希望将位置设置为 欧洲 西欧 就像我为 ResourceGroup 所做的那样 但此位置 以及许多其他位置 是无法使用 请在此处查看完整列表 https i st
  • 从 boost::filesystem::is_directory 捕获异常

    我目前正在从 boost filesystem is directory 捕获错误 并通过在异常上调用 what 向用户显示错误 这给出了失败的原因 但该错误对用户来说很奇怪 例如 boost filesystem is directory
  • 从静态库中删除所有符号是否会阻止链接?

    据我所知 链接器的工作是将目标文件中未定义的符号与静态库中定义的符号进行匹配 如果找到 正确的符号定义将包含在最终的可执行文件中 这就是所谓的符号解析 那么如果所有符号都从静态库中删除会发生什么呢 它是否会阻止链接器正确解析符号 剥离符号是
  • 在heroku上通过bundler安装linecache

    我在 Rails 3 0 应用程序上使用 RVM 并使用 Ruby 1 9 2 which ruby home ved rvm rubies ruby 1 9 2 p136 bin ruby 当我推送到heroku时 出现以下错误 Inst
  • SFTP 中出现“无法规范化:没有这样的文件或目录”错误的原因是什么?

    我正在尝试使用SFTP将整个目录上传到远程主机 但出现错误 我知道SCP确实有效 但我真的想找出SFTP的问题 我使用的命令如下 echo put r LargeFile echo quit sftp vb username remoteh
  • 实体框架 6 中自我跟踪实体的替换

    我确信大多数 NET 开发人员都必须以某种方式面对这个问题 问题很简单 我正在升级我的项目 NET 4 到 NET 4 5 1 到目前为止 升级进展顺利 但是当我从 EF4 升级到 EF6 时 我在查询中确实遇到了很多错误 其中一些与我所做
  • 有哪些工具可用于将 ipython 笔记本导出为 PDF 文件? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个格式良好的 ipython 笔记本 其中包含 Markdown 单元格之类的东西 我想知道导出为
  • Twig 访问对象

    我想访问树枝模板内对象的值 通常我会得到这样的回报 echo lang gt get test 但是我怎样才能在模板中用树枝做同样的事情呢 我尝试了很多方法 但没有一个有效 例如我尝试过 attribute lang get test 结果
  • 使用字符串、反模式的依赖注入(ninject)?

    我有一些代码使用 ninject 注入依赖项 这些依赖项是实际的字符串 例如 这是注入字符串而不是创建新对象的反模式吗 IE 我想注入用户名和密码 创建一个名为 凭证 的小类 其中包含 用户名 和 密码 两个属性并注入它实际上会更好吗 将字
  • Amazon S3 Cloudfront 部署最佳实践

    我们当前的站点计划是使用 Amazon 的 Cloudfront 服务作为 CSS JavaScript 和图像等资产文件以及任何其他静态文件的 CDN 目前 我们在 S3 中有 1 个存储桶 其中包含所有这些静态文件 这些文件根据其内容被
  • 在 C# 中,如何从 ExpandoObject 中删除属性?

    假设我有这个对象 dynamic foo new ExpandoObject foo bar fizz foo bang buzz 我该如何删除foo bang例如 我不想简单地将属性的值设置为 null 出于我的目的 我需要将其完全删除
  • 将 CSS 应用于 HTML 通用控件,例如 ASP.NET 中的

    我不知道如何将 CSS 应用于 HTML 通用控件 例如 ul and li given runat server 在 ASP NET 中 我正在寻找 li li 从内容页到母版页 一旦我找到了该控件 我就想应用 CSS ul style
  • Selenium:如何在 AWS 上使用 Headless Chrome?

    今天我看到这条消息UserWarning Selenium support for PhantomJS has been deprecated please use headless versions of Chrome or Firefo
  • PHP 中将大写驼峰式命名法分解为大写驼峰式命名法

    现在 我正在通过分割 切片和内爆来实现这一点 exploded implode array slice preg split A Z ThisIsATest 1 exploded This Is A Test 更漂亮的版本 capital