问题标签 [substitution]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
459 浏览

regex - 如何将文本模式包含在 xml 元素中,除非它已经在某个 xml 元素中?

我有数千个从 Java 属性文件生成的 xml 文件,这些文件准备以 TTX 格式进行翻译。它们包含相当多的变量,我需要保护它们免受翻译者的影响,因为它们经常破坏这些东西。变量的形式是数字或一对大括号之间的偶尔文本,例如。{0},{这个}。

如果这些变量还不是属性并且它们还不是ut元素的内部文本的一部分,我需要用 xml 元素包围这些变量,如下所示:

我的输入如下所示:

正确的输出应该是这样的:

我最初的方法是使用正则表达式来匹配大括号中的术语,并使用模式替换围绕它构建 xml 元素。当上述第一个代码块中存在模式时,这种方法会失败。

以前的查找和替换模式(在记事本++中):

寻找

代替

开始看起来正则表达式不是适合这项工作的工具,所以我想要一些关于更好的方法、不同的工具,甚至只是一个更完整的正则表达式的建议,这可以让我快速且可重复地解决这个问题。

更新:这个问题比之前预想的要复杂一些。似乎还有更多需要保护的东西,涉及一些相当晦涩的语法,将变量与文本混合在某种条件语句中。从记忆里:

其中“错误”和“错误”是可翻译的,不应受到保护。我们目前最简单的解决方案是运行上面的正则表达式,修复它创建的少数几个错误,然后为更复杂的项目运行几个更正常的查找和替换通道。它可以抽象为正则表达式,但现在这样做没有多大意义。

除了提供的改进的表达式之外,我很欣赏指向 xslt 和其他具有更好正则表达式支持的编辑器的指针。如果时间允许,我会尝试一些选项。

0 投票
2 回答
10141 浏览

regex - Perl qr// 和替换

我正在编写一个使用 Getops 接受用户输入的小程序,基于它,该程序将尝试将模式与某些文本进行匹配,或者用文本替换匹配的内容。

我遇到的问题是我无法让替换部分工作。我正在查看手册页中的 qr// 条目:http: //perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators但我没有任何运气。在这种情况下,我尝试完全像文档一样对我的代码进行建模。我编译了一个匹配模式,并将其替换为替换。

有人能指出我哪里出错了吗?(不要太担心安全问题,这只是个人使用的一个小脚本)

这是我正在查看的内容:

当我使用 -r "/matt/" -i 运行它并在文本“matt”上输入替换文本“matthew”时,它失败了。为什么是这样?

编辑:

谢谢你们的答案!这真的很有帮助。我将您的两个建议都结合到了该问题的可行解决方案中。我必须稍微不同地处理 /g 标志。这是工作示例:

0 投票
4 回答
5882 浏览

python - reST / Sphinx中的链接内的替换

我正在使用 Sphinx 记录将部署在不同服务器中的 Web 服务。该文档充满了供用户单击的 URL 示例,它们应该可以正常工作。我的问题是主机、端口和部署根目录会有所不同,并且必须为每次部署重新生成文档。

我尝试定义这样的替换:

但是生成的 HTML 不是我想要的(在生成的链接中不包含“/path”):

有人知道如何解决这个问题吗?

0 投票
1 回答
1087 浏览

asp.net - 在母版页代码隐藏中呈现 ASP.NET 控件

我在我的母版页中使用了 Substitution 控件,并且我想在 Substitution 中呈现用户控件内容(与我网站的登录区域相关)。似乎我必须对所请求的页面有一个引用,以便它可以呈现控件。但是我需要在母版页本身中呈现控件,因为它在我网站的多个页面之间共享。实现这一目标的指导方针是什么?

Tks

0 投票
2 回答
102 浏览

registration - 需要考虑哪些字母和数字混淆?

我刚刚有一个用户告诉我他的注册码不起作用。我花了很长时间才弄清楚他输入的是大写字母“O”而不是数字“0”。

所以我决定我的注册表检查器最好将“O”和“0”视为等效,这样两者都可以工作。

我可以想到另外两种可能的混淆:

  1. 数字“1”和大写字母“I”和小写字母“l”
  2. 数字“5”和字母“S”或“s”。

这些都是这些,还是还有其他的?

0 投票
3 回答
545 浏览

bash - 命令替换,但不将输出分解为多个参数

有没有办法在 BASH shell 中进行命令替换而不将输出分解为多个参数?

我将某个目录的路径(从 GUI 文件浏览器中的位置栏)复制到剪贴板,然后发出以下命令,其中命令 xsel 返回剪贴板内容,在这种情况下是目录的路径:

但有些路径包含空格,甚至可能包含 BASH 使用的一些特殊字符。

如何将命令的输出作为单个参数传递,而 BASH 不会弄乱特殊字符?

0 投票
5 回答
2973 浏览

regex - 在 Perl 中匹配和替换多个单词时如何保留空格?

假设我有一些原文:

我需要文本来匹配它的一部分,比如:“ has a substring”。

但是,原始文本和匹配字符串可能存在空格差异。例如,匹配文本可能是:

或者

和/或原文可能是:

我需要我的程序输出的是:

我还需要保留原始中的空白模式,只需向其中添加开始和结束标记。

关于使用 Perl 正则表达式来实现这一点的任何想法?我试过了,但最终变得非常混乱。

0 投票
4 回答
395 浏览

vim - 在 VIM 中,是否可以在不重新输入的情况下使用替换子句中的选定文本?

假设我在可视模式下选择了一个词。我想使用 s// 对该单词和文件中该单词的所有其他实例执行替换。有没有办法使用s/<here>/stuff/部分中突出显示的文本而无需重新输入?

0 投票
6 回答
2145 浏览

regex - 角括号条件替换的正则表达式

是否可以创建一个正则表达式以在 Komodo Edit 中将 < 和 > 替换为它们的实体等价物?

0 投票
4 回答
5931 浏览

latex - 如何用定义替换乳胶宏(使用乳胶)

如何用他们的定义替换所有出现的用户定义的乳胶宏?

例如,给定这个文件

旧的.tex

如何以自动方式生成以下文件

新的.tex

我可以使用 Latex 或 tex 引擎本身来执行此操作,而不是用 perl 重新实现乳胶宏逻辑吗?