我希望我的字符串包含5个字符的组,.eg
thisisastring => ["thisi", "satri", "ng"]
Run Code Online (Sandbox Code Playgroud)
但我也希望最后一组用__填充,例如
thisisastring => ["thisi", "satri", "ng___"]
Run Code Online (Sandbox Code Playgroud)
我已经到了字符串拆分:
"thisisastring".scan /.{5}/)
["thisi", "satri", "ng"]
Run Code Online (Sandbox Code Playgroud)
但不太确定如何为最后一组做填充以使其成为"ng___"
虽然开始认为dividend(div()),modulus(%)的组合.ljust可能会这样做.
也许填充字符的数量是:( (length % 5) * "_"如果你可以乘以)?
也许是使用的东西:
ruby-1.9.2-p290 :023 > (len % 5).to_i.times { print '_' }
___ => 3
Run Code Online (Sandbox Code Playgroud) 我想在R中有一个函数,如果它们尚不存在,则在给定的子字符串(例如"alpha")周围插入点(".").例如
string="10-alpha-epoxy-Amorph-4-ene"应该返回
"10-.alpha.-epoxy-Amorph-4-ene"
Run Code Online (Sandbox Code Playgroud)
string="alpha-cadolene" 应该回来
".alpha.-cadolene"
Run Code Online (Sandbox Code Playgroud)
但
string=".alpha.-cadolene"应该回来
".alpha.-cadolene"
Run Code Online (Sandbox Code Playgroud)
(子串可能会多次出现)
在R中使用gsub实现这一目标的最简单方法是什么?
汤姆,欢呼声
我想创建一个没有破折号的新电话号码列.我的数据只是数字和一些带破折号的数字.数据如下:
电话
555-555-5555
1234567890
555-3456789
222-222-2222
51318312491
echo [18%] | sed s:[\[%\]]::g
Run Code Online (Sandbox Code Playgroud)
我真的很困惑,因为[18%]在vim中成功替换了相同的模式.我还测试了表达在几个在线的正则表达式的工具,他们都表示,这将匹配的[,%和]如预期.我尝试添加-r选项以及在引号中包含替换命令.
我知道还有其他命令可以用来完成这个任务,但我想知道它为什么会这样表现,所以我可以更好地理解sed.
是否可以使用正则表达式在Python中执行类似的操作?
将字符串中数字的每个字符增加1
所以输入"123ab5"会变成"234ab6"
我知道我可以迭代字符串并手动递增每个字符,如果它是一个数字,但这似乎是unpythonic.
注意.这不是功课.我把问题简化到了一个听起来像家庭作业的水平.
我有一个函数,用于用几个字符或数字替换一些单词。我string.gsub()以这种方式使用函数:
string.gsub(line, "[0-9%a%s/,-]+", "\t")
Run Code Online (Sandbox Code Playgroud)
这对于包含数字、字母、空格,、 和 的字符串非常有效/。我也想替换像(和这样的括号)。但是简单地插入()到我的模式中是行不通的。我也尝试过%(,%)但没有成功。如何在string.gsub()方法中使用模式替换 Lua 中的括号?
我目前未解决的 bash 问题是如何替换类中的所有字符[:punct:],即
[!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]
Run Code Online (Sandbox Code Playgroud)
, 每个都有相同的字符,用反斜杠转义。例如,我想^h?e.l*l+o:成为\^h\?e\.l\*l\+o\:.
我可以用循环的多线方式来做到这一点。有没有可能以更简洁优雅的方式做到这一点?
谢谢,卢卡
我有以下Makefile我想使用Bash 参数替换语法的地方,如下所示:
SHELL:=/bin/bash
Foo=Bar
all:
@echo ${Foo}
@echo ${Foo/Bar/OK}
Run Code Online (Sandbox Code Playgroud)
但是它没有按预期工作,因为第二个echo命令的输出为空:
$ make
Bar
(empty)
Run Code Online (Sandbox Code Playgroud)
虽然直接在 shell 中调用它工作正常:
$ Foo=Bar; echo ${Foo/Bar/OK}
OK
Run Code Online (Sandbox Code Playgroud)
如何在 Makefile 中使用上述语法?
我想做字符串替换.使用gsub或者tr我可以给出一个输入字符并将其映射到单个输出值但我想基于多个映射创建多个输出字符串:
swap = {
'a' => ['$', '%', '^'],
'b' => ['3'],
'c' => ['4', '@'],
}
Run Code Online (Sandbox Code Playgroud)
对于输入字符串'abc',我应该得到以下输出字符串:
'$34''$3@''%34''%3@''^34''^3@'是否有一种简单的方法可以为任意数量的输入和映射执行此操作?实际上,它可能是大约10个输入,最多3个映射,通常只有一个.
我有一个简单的替换应用程序,用户输入一个字符串,该字符串被分为子串,然后每个字符替换一个数字.
我遇到的麻烦只是最后一组替换被采取行动,或者至少如果前两个正在工作它们被取消并返回"0".
因此,对于"abc"的输入,我需要输出"123"但是我得到"003",或者如果输入是"bcd",则输出应该是"234"但是我得到"004".
我哪里错了?
JButton button_1 = new JButton("Substitute");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String str = textField_1.getText();
String str0 = str.substring(0);
int val1 = 0;
if (str0.equalsIgnoreCase("a")) { val1 += 1; }
if (str0.equalsIgnoreCase("b")) { val1 += 2; }
if (str0.equalsIgnoreCase("c")) { val1 += 3; }
if (str0.equalsIgnoreCase("d")) { val1 += 4; }
String str1 = str.substring(1);
int val2 = 0;
if (str1.equalsIgnoreCase("a")) { val2 += 1; }
if (str1.equalsIgnoreCase("b")) { val2 += 2; }
if …Run Code Online (Sandbox Code Playgroud)