首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Notepad++中查找正则表达式并替换为正则表达式

在Notepad++中查找正则表达式并替换为正则表达式
EN

Stack Overflow用户
提问于 2018-10-22 12:47:29
回答 2查看 1K关注 0票数 1

目前,我有一个PHP函数,它获取CSV文件的内容,并将其放入多维数组中,其中包含我使用索引在不同地方打印的文本。

使用的一个例子是:

$localText[index][pageText][conceptQualityText][$lang];

第一个索引[index]将是页面的名称。第二个索引[pageText]将指示它是什么(页面的文本)。第三个索引,[conceptQualityText]表示实际文本是什么。最后一个索引,[$lang]以所需的语言获取文本。

因此:

->page定位

是->what吗?

->the含量

应该在->what语言中显示。

在以前的PHP版本中,这一切都很好。但是,升级到7.2时,PHP似乎更严格一些。两年前,当我第一次提出这个解决方案时,我还有点绿色,现在我知道,由于这些索引不是定义为字符串(例如封装在诸如so:['index']这样的单引号中),所以它们适合超全局( defined )的表示法。我当时并没有仔细考虑,但是现在PHP似乎把它们解释为“超级全局”,因此我被抛出了一个错误,即x字是一个未定义的超全局的。

我最初的想法是搜索并替换我的示例字符串:

$localText[index][pageText][conceptQualityText][$lang];

使用Notepad++中的正则表达式功能。

然而,这个例子只是众多例子中的一个,数组索引的符号基本上是:

$localText[index][index2][index3][$lang];

,所以我的问题是:

如何使用Notepad++搜索和替换,使用正则表达式,从而使索引指针成为字符串,而不是充当超全局变量?

例如:使:

$localText[index][index2][index3][$lang];

转入:

$localText['index']['index2']['index3'][$lang];

我需要某种逻辑来检查括号中的任何内容,并用单引号封装它们,但最后一个索引[$lang]除外。

我试图提供尽可能多的信息,如果有什么需要详细说明的话,请告诉我。

我试图引用这些医生,但没有多少运气。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-22 13:09:45

我找到了一个解决方案

这是:

查找:\b(localText\[)([a-zA-z0-9_\-]+)(\]\[)([a-zA-z0-9_\-]+)(\]\[)([a-zA-z0-9_\-]+)

替换:$1'$2'$3'$4'$5'$6'

就像一种魅力。谢谢大家抽出时间来帮忙。

票数 0
EN

Stack Overflow用户

发布于 2018-10-22 13:04:09

您可以使用以下正则表达式进行匹配:

代码语言:javascript
复制
\[[^'](\w+)[^']\]

regex匹配方括号中的一个单词,除非它引用。

代之以:

代码语言:javascript
复制
['$1']

正则表达式将不匹配最后的括号,因为它包含一个'$‘号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52929761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档