问题标签 [string-operations]

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 投票
0 回答
77 浏览

python - 我们如何使用带有 string.join() 的自定义迭代?

join()srings的方法似乎适用于lists 字符串和其他内置可迭代对象。但是,当我定义自己的迭代器时,请join()合作。如何编写一个join()很高兴拥有的可迭代对象?

测试三的输出是:

0 投票
1 回答
226 浏览

bash - 用于检索文件名的 BASH 字符串运算符语法

我正在尝试编写一个程序,该程序采用文件名并在其上加上日期。所以我试图获取文件名本身和扩展名的子字符串。

我是 BASH 的新手,所以也许我在这里遗漏了一些东西,但是按照在线指南,这似乎应该可行-

但是计算机返回这些错误-

如果这很重要,我正在 Windows 10 上使用 Ubuntu 子系统。

0 投票
1 回答
669 浏览

powershell - powershell在字符串后从文本文件导入数据

似乎有类似的问题在网上流传,尽管答案各不相同,我只是无法得到我正在寻找的结果。

下面只是在文件末尾附加了txt文件中的内容

虽然我想使用 powershell 在文本文件中查找字符串,然后在找到的字符串之后从另一个文本文件中复制内容。

搜索字符串“HeartBeat”的文本文件的虚构示例

还有另一个名为“insertme.txt”的文本文件,它将在“HeartBeat”之后的新行中插入其内容

一旦附加将是

任何帮助,将不胜感激。

谢谢

0 投票
2 回答
1540 浏览

python - 通过索引获取字符串的多个字符

我需要punch()根据索引模板(掩码?)从字符串中取出特定字符。

例如,我需要将所有有a的字符都打出来1

基本上我需要打印给定字符串的所有非空子序列:

我正在尝试使用蛮力来实现这一点,因此我将为输入字符串的长度生成所有模板,并使用punch()来“打孔”这些子序列。

PS:这可能是解决这个问题的坏方法,但我认为punch()有一个很好的方法。

0 投票
2 回答
77 浏览

c# - 通过字符串操作从json字符串中读取值

如何从下面的字符串中读取“key”和“key1”的值。它的 json 但我无法解析为它的非常大的数字并且在解析时它被破坏了。

所以,想通过字符串操作读取 somelongnumber 和 somelongnumber2 。

这将是获得此值的最简单方法。

带数据的字符串:

0 投票
3 回答
539 浏览

python - 如何打印带有对齐文本的列表列表,rjust() 的整数长度来自列表中字符串的最大长度。

我试图找到答案,但大多数答案都使用 map() 或 zip() 等高级函数。我必须只使用字符串属性、方法或函数。我找不到字符串函数或属性的答案。

我需要将给定的列表列表打印到右对齐的列中。它是每个子列表的一种转置,即列表列表中的第一个列表打印为表格的第一列,第二个列表第二列,依此类推。

给定的列表列表:

和所需的输出:

在此处输入图像描述

请注意,rjust() 的参数来自 tableData 中最长单词的最大长度。

我已经计算出了 tableData 中最长单词的最大整数长度,如下所示:

现在我被困住了如何编写一个循环来以所需的表格格式打印列表。(我可以使用 zip() 或 map() 来做到这一点,但那不被接受!)有什么帮助吗?

0 投票
2 回答
1402 浏览

javascript - 如何使用 JS 正则表达式查找所有不匹配字符的索引?

我有一个字符串,我想获得一个数组,其中包含该字符串中与某个正则表达式条件不匹配的字符的索引(位置)。

这里的问题是,如果我这样写:

有用。它返回所有数字或字母字符的索引。但问题是,如果我试图做相反的事情,在正则表达式中使用负前瞻,就像这样:

它最终陷入无限循环。

我想要实现的是与第一种情况相同的结果,但使用负正则表达式,所以在这种情况下,结果将是:

循环是错误的,还是正则表达式搞砸了?也许exec不适用于负前瞻正则表达式?

我会理解正则表达式无法按预期工作(因为它可能格式错误),但我不理解无限循环,这让我认为这exec可能不是实现我正在寻找的最佳方式为了。

0 投票
1 回答
187 浏览

f# - 如何使用 F# 读取降价文件的逐字代码部分

我对 F# 完全陌生。

我正在尝试解析一个 Markdown 文件,其中包含一些逐字代码部分,由 ``` 块分隔。这些块不必是一行中的唯一字符,并且

\``` this is some code ``` and this is not

也是一条有效的线。

如果可能的话,如果解决方案使用纯 Fsharp 做事方式以及可能的功能设计模式(如 Active Patterns),我将不胜感激。

到目前为止,除了阅读文件之外,我还没有走得更远。

编辑:我不想使用任何库。在 Python 中,这将是一行代码; re.search('start;(.*)end', s)

0 投票
1 回答
2724 浏览

c# - 在 C# 中检查字符串是半角还是全角

日语 Windows 操作系统上的 C# 应用程序 - 将拉丁语呈现为全角字符

我在上面的链接中提到了接受的答案,并使用下面的代码将日语字符串从全角转换为半角,但它返回相同的全角字符串而不进行转换。

半幅预期输出:チヨチヨチチヨチヨチ 实际输出:チヨチヨチチヨチヨチ(全幅)

但是,即使上面的代码应该将全角字符串转换为半角,当我将半角字符串 (チヨチヨチチヨチヨチ) 传递给上述代码时,它也会将其转换为全角形式 (チヨチヨチチヨチヨチ) .

我在这里做错了什么?

无论如何,如果我的字符串已经是半角,我不希望执行上面的代码。

如何检查字符串是半宽还是全宽?

0 投票
2 回答
686 浏览

assembly - 方向 EFLAG 的值如何影响 SCAS 和 MOVS 指令?

我想知道设置或清除方向 EFLAG 如何改变 SCAS 和 MOV 指令如何递减或递增寄存器。我阅读了一些网页并做出了以下假设,我将在下面列出。

我正在使用 MASM 32 SDK - 不知道是什么版本,我通过 Visual MASM 的下载和安装向导安装了 - 使用 Visual MASM 和 MASM32 编辑器将它们链接并构建到对象和可执行文件中。我使用的是 Windows 7 Pro 64 位操作系统。

SCAS

  1. SCAS 指令“将 AL 中的字节或 AX 中的字与 ES 中的 DI 指向的字节或字进行比较”。因此,要使用 SCAS,必须将目标字符串地址移动到 EDI,并且必须将要查找的字符串移动到累加器寄存器(EAX 和变体)。

  2. 在使用 32 位系统时,设置方向标志然后使用 SCAS 将停止 SCAS 运行。在 32 位系统上,不可能强制 SCAS“从头到尾扫描字符串”。

  3. 任何 REP 指令始终使用 ECX 寄存器作为计数器,并且始终递减 ECX,而不管方向标志的值如何。这意味着使用 REP SCAS 不可能“从头到尾扫描字符串”。

资料来源:
SCAS/SCASB/SCASW,Birla Institute of Technology and Science
扫描字符串,来自 c9xm.me
SCAS/SCASB/SCASW/SCASD — 扫描字符串,来自 felixcloutier.com
MASM:使用“字符串”说明,来自 www.dreamincode.net /论坛

以下是我将在问题中引用的程序的部分代码:

  1. “搜索”部分下的代码一次搜索字符串 InputEnd 4 个字节,因此一次搜索 4 个字符。该块扫描EAX中的字符,即单词“省略”,总是从edi中的内存地址的值开始,然后根据SCAS的后缀(B,W,D,Q)递增(MASM:使用'String ' 说明,dream-in-code.com)

MOVS

  1. 使用“移动最后一个单词”部分,我可以从字符串 Input 中获取最后一个字节。然后我使用 MOVSW 将字符串 Input 的最后 4 个字节移动到 InputEnd,假设方向标志是明确的。我必须将 Input 定义为一个字节数组Input db 32 dup(?)- 才能使块工作。

  2. 无论我如何定义 InputEnd(无论是“dd ?, 0”还是“db 12 dup(?)”),mov 和 scas 指令的操作(标志设置、寄存器修改等)都不会改变。SCAS 和 MOV 的递增/递减量取决于命令的后缀/最后一个字母,而不是存储在 EDI 和 ESI 中的指针的定义字节或大小。

  3. 使MOVS从字符串的开头转移到结尾是不可能的。你必须是字符串的长度;将对应的地址加载到EDI和ESI;将字符串的长度添加到存储在 EDI 和 ESI 的地址中;最后,使用 设置方向标志std。这里的一个危险是目标地址低于源或目标字节。

  4. 使用 MOVS 反转字符串的字母是不可能的,因为 EDI 和 ESI 要么都被 MOVS 递减,要么都被递增

来源(除了之前在 SCAS 部分中列出的站点):
https://c9x.me/x86/html/file_module_x86_id_203.html
http://faydoc.tripod.com/cpu/movsd.htm

这些假设是否正确?网站 URL 上的 x86 文本是否表明网站信息错误?