问题标签 [string-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 投票
1 回答
111 浏览

r - R 简化 gsub() 以从更长的字符串中生成样本名称

我有一个样本名称列表

需要简化为

我已经尝试过 gsub() 的以下用法,但我正在尝试简化解决方案。

有什么建议么?

0 投票
1 回答
936 浏览

python - PostgreSQL:从 SQL 复制到特定列

COPY FROM在上午的大部分时间里,我一直在试图弄清楚如何格式化SQL 语句,我需要帮助。

我正在尝试将 ASCII 文本文件中的数据导入我的 Postgres 数据库中的表。我认为它不喜欢我指定输入 ASCII 文件的方式。我尝试了两个文件路径都没有运气:

这是我用来访问数据库的脚本:

当我在 python 控制台中单步执行脚本时,尝试运行该cur.execute(sql)行时出现以下错误:

我是否正确地将我的字符串替换为我的 SQL 语句?

0 投票
1 回答
81 浏览

regex - 正则表达式 :: 复杂替换

我试图在我的解决方案中“美化”某种类型的数字对象。这种特定类型具有以下可能的表示形式,以及它们的漂亮表示形式:

基本上,该类型由 5 位数字表示FieldA,7 位数字表示FieldB和一个可选数字表示 a CheckDigit。使用以下正则表达式/替换模式:

... 结果是:

是否可以仅使用正则表达式/替换对来纠正第一个表示?我可以通过使用两个不同的正则表达式来完成这项工作,但我想要一个比这更优雅的解决方案。一个使用单个正则表达式/替换对。

PS。我正在使用 Java 1.7。

0 投票
1 回答
78 浏览

python - python %s 字符串替换和“self”?

在 pyyaml 文档中查看此代码,为什么"Dice(%s,%s)" % self有效?有两个%s但只有一个 var self

http://pyyaml.org/wiki/PyYAMLDocumentation#Constructorsrepresentersresolvers

0 投票
1 回答
237 浏览

bash - 在 bash 中从 xargs {} 中去除字符

假设我有名为"*.data.done". 现在我想将它们(递归地)重命名为“* .data”,然后是那些包含"pattern"

所以我们开始:

好吧,这种“.done”的剥离不起作用(bash 4.3.11):

我怎样才能做到这一点最简单的方法?

0 投票
2 回答
236 浏览

bash - 当我匹配特定列时使用 gsub

我有一个包含 DNA 碱基序列表的原始文件,带有行和列标签,以及一个单独的“位置”文件,其中列出了列标签的子集。我需要处理原始文件,对位置文件标识的列中的值执行转换。

示例原始文件:

位置文件示例:

在每个选定的字段上,我需要执行这些翻译:

因此,通过基于提供的位置文件处理示例原始文件获得的输出将是:

因此第一行未修改,在随后的每一行中,对应于列标签pos1pos3pos6pos7的字段都进行了转换,而其他字段保持不变。

我知道如何使用awkapplygsub()来修改整个输入行或专门修改第 n字段,但我只需要修改位置文件中列出的那些字段,由数据文件第一行上的列标签标识。我怎样才能实现awk呢?

0 投票
2 回答
250 浏览

python - python中的级联字符串插值

给定一个格式字符串字典,我想做级联/递归字符串插值。

我从这个实现开始:

interpolate()函数首先选择格式字符串。然后,它替换字符串,直到不再有格式字符串。

当我使用以下 Python 字典调用此函数时,我得到:

结果没问题,但是这个实现没有检测到参考周期。

例如,以下调用导致无限循环!

谁能给我一个更好的实现?

编辑:解决方案

我认为 Leon 的解决方案既好又简单,Serge Bellesta 也是如此。

我会这样实现它:

0 投票
1 回答
370 浏览

c++ - 使用 ostream 左移语法替换 printf 样式调用的正则表达式

我们的 C++ 项目的日志记录工具即将重构为使用重复的左移运算符(以 QtqDebug()语法的方式)而不是 printf 样式的可变参数函数。

假设日志记录对象被调用logger。假设我们要显示我们连接的服务器的 ip 和端口。在当前的实现中,用法是:

重构后,上述调用将变为:

手动替换所有这些调用将非常繁琐且容易出错,所以很自然地,我想使用正则表达式。作为第一遍,我可以替换.logf(...)调用,产生

但是,将此字符串重新格式化为左移语法是我遇到问题的地方。我设法创建了单独的正则表达式来捕获printf 占位符逗号分隔的参数。但是,我不知道如何正确地将两者关联起来。

为了避免重复相当笨拙的正则表达式,我将使用占位符(printf)来引用printf 占位符正则表达式(返回命名的 group token),并(args)引用逗号分隔的参数正则表达式(返回命名的 group arg)。下面,我将给出应用于上述行相关部分的各种尝试的输出,即:

  • /(printf)(args)/g不产生匹配。

  • /(printf)*(args)/g产生两个匹配,包含ipport在命名组中arg(但没有在token)。

  • /(printf)(args)*/g得到相反的结果:它产生两个匹配,在命名的 group中包含%s和,但在.%dtokenarg

  • /(printf)*(args)*/g返回 3 个匹配项:前两个包含%s%din token,第三个包含portin arg。但是,regexp101 报告“20 个匹配项 - 207 个步骤”并且似乎在每个字符之前都匹配。

  • 我想也许我需要指定第一个捕获组总是在双引号之间。但是,既不/"(printf)"(args)/g也不/"(printf)(args)/g产生任何匹配。

  • /(printf)"(args)/g产生一个(不正确的)匹配,包含%din grouptokenipin arg,并且替换会消耗这两个字符串之间的整个字符串(因此输入#替换字符串会导致"connected to %s:#, port. 显然,这不是预期的结果,但它是我可以的唯一版本至少在一次比赛中获得两个命名组。

任何帮助是极大的赞赏。

编辑以纠正损坏的格式

0 投票
2 回答
73 浏览

java - 用于字符串替换的正则表达式

我有一个包含一些数据记录的文件,如下所示:

在每个条目中,我必须用脚本(java/python 或其他)替换这样的行:

^^<http://www.w3.org/2001/XMLSchema#float>在数字末尾添加:

你能帮我一个帮助我替换的正则表达式吗?

实际正则表达式:

它只捕获pos#long> "1

太感谢了

0 投票
1 回答
678 浏览

python - 在python中用re.sub替换特定的命名组

我创建了一个正则表达式来查找像/places/:state/:city/whatever

这工作得很好:

打印{'city': 'NY', 'state': 'NY'}

如何处理日志文件以替换/places/NY/NY/other/stuff为字符串"/places/:state/:city/other/stuff"?我想了解有多少网址属于“城市类型”,而不关心这些地方具体是 ( NY, NY)。

简单的方法可能会失败:

将打印/places/:city/:state/other/stuff,这是倒退!

感觉应该有某种使用方法,re.sub但我看不到。