标签: string-substitution

替换字符串中的特定字符

我想从向量中的字符串中删除特定字符,类似于Excel中的" 查找和替换"功能.

以下是我开始的数据:

group <- data.frame(c("12357e", "12575e", "197e18", "e18947")
Run Code Online (Sandbox Code Playgroud)

我从第一栏开始; 我想通过删除e's 来生成第二列:

group       group.no.e
12357e      12357
12575e      12575
197e18      19718
e18947      18947
Run Code Online (Sandbox Code Playgroud)

regex replace r string-substitution gsub

251
推荐指数
5
解决办法
53万
查看次数

Ruby匹配gsub替换的第一次出现的字符串

我有一个字符串让我们说http://someUrul.com/someController/SOmeAction?SomeQS=http://someOtherUrl

我想用https替换第一个http,但不是第二个,所以我最终得到https://someUrul.com/someController/SOmeAction?SomeQS = http:// someOtherUrl

我怎样才能用一个简单的gsub实现这个目标?以下内容替换了两者.

request.url.gsub(/http:/, "https:")
Run Code Online (Sandbox Code Playgroud)

ruby regex string-substitution gsub

33
推荐指数
1
解决办法
1万
查看次数

如何使用ruby gsub Regexp与许多匹配?

我有csv文件内容在引用文本内有双引号

test,first,line,"you are a "kind" man",thanks
again,second,li,"my "boss" is you",good
Run Code Online (Sandbox Code Playgroud)

我需要用""替换逗号前面或后面的每个双引号.

test,first,line,"you are a ""kind"" man",thanks
again,second,li,"my ""boss"" is you",good
Run Code Online (Sandbox Code Playgroud)

所以"被"替换为""

我试过了

x.gsub(/([^,])"([^,])/, "#{$1}\"\"#{$2}")
Run Code Online (Sandbox Code Playgroud)

但没有奏效

ruby regex csv string-substitution gsub

20
推荐指数
2
解决办法
6万
查看次数

Perl6搜索然后替换为子例程的输出

我已经整理了文档,但似乎找不到在perl6中执行此操作的方法。

在perl5中,我会做的(只是一个例子):

sub func { ... }

$str =~ s/needle/func($1)/e;
Run Code Online (Sandbox Code Playgroud)

即用对“ func”的调用输出替换“ needle”

regex evaluation replace string-substitution perl6

15
推荐指数
2
解决办法
199
查看次数

Bash or-equals || =喜欢Ruby

Bash有类似|| =的东西吗?

即,是否有更好的方法来执行以下操作:

if [ -z $PWD ]; then PWD=`pwd`; fi
Run Code Online (Sandbox Code Playgroud)

我问,因为我收到此错误:

$ echo ${`pwd`/$HOME/'~'}
-bash: ${`pwd`/$HOME/'~'}: bad substitution
Run Code Online (Sandbox Code Playgroud)

所以,我的计划是:

if [ -z $PWD ]; then PWD=`pwd`; fi
echo ${PWD/$HOME/'~'}
Run Code Online (Sandbox Code Playgroud)

我真正的问题是:"有更好的方法来做以下事情吗?"

# ~/.bash_profile

# Set prompt to RVM gemset, abbr. of current directory & (git branch).
PROMPT_COMMAND='CUR_DIR=`pwd|sed -e "s!$HOME!~!"|sed -E "s!([^/])[^/]+/!\1/!g"`'
PS1='$(~/.rvm/bin/rvm-prompt g) [$CUR_DIR$(__git_ps1)]\$ '
Run Code Online (Sandbox Code Playgroud)

bash command-prompt string-substitution pwd

11
推荐指数
1
解决办法
3329
查看次数

在 for 循环中用 .subst 替换字符串

我想for使用命名捕获在块中进行字符串替换。我期望得到数字 1,2,3 作为输出。但它Nil用于第一次运行,然后是 1 和 2 用于第二次和第三次运行。如何.subst在循环结构中正确使用?当使用map构造而不是for循环时,我看到了相同的行为。如果我用固定的字符串值替换它,它确实按预期工作。

for <a1 b2 c3> -> $var {
    say $var;
    say $var.subst(/.$<nr>=(\d)/, $<nr>); #.subst(/.$<nr>=(\d)/, 'X'); #OK      
}

#`[
This is Rakudo version 2019.11 built on MoarVM version 2019.11   
Output:

a1
Use of Nil in string context
  in block  at test3.pl6 line 3

b2
1
c3
2
]
Run Code Online (Sandbox Code Playgroud)

string-substitution raku

9
推荐指数
1
解决办法
207
查看次数

如何使用替换距离比较两个字符串以查找R中匹配的字符数?

在R中,我有两个字符向量a和b.

a <- c("abcdefg", "hijklmnop", "qrstuvwxyz")
b <- c("abXdeXg", "hiXklXnoX", "Xrstuvwxyz")
Run Code Online (Sandbox Code Playgroud)

我想要一个函数来计算a的每个元素和b的相应元素之间的字符不匹配.使用上面的例子,这样的函数应该返回c(2,3,1).没有必要对齐字符串.我需要逐个字符地比较每对字符串,并计算每对中的匹配和/或不匹配.R中是否存在任何此类功能?

或者,以另一种方式提问,是否有一个函数给我两个字符串之间的编辑距离,其中唯一允许的操作是替换(忽略插入或删除)?

r edit-distance string-comparison string-substitution

7
推荐指数
1
解决办法
5033
查看次数

awk动态文档索引

我有一个文档,我需要动态创建/更新索引.我试图用awk来完成这个.我有一个部分工作的例子,但现在我很难过.

示例文档如下.

numbers.txt:
    #) Title
    #) Title
    #) Title
    #.#) Subtitle
    #.#.#) Section
    #.#) Subtitle
    #) Title
    #) Title
    #.#) Subtitle
    #.#.#) Section
    #.#) Subtitle
    #.#.#) Section
    #.#.#.#) Subsection
    #) Title
    #) Title
    #.#) Subtitle
    #.#.#) Section
    #.#.#.#) Subsection
    #.#.#.#) Subsection
Run Code Online (Sandbox Code Playgroud)

期望的输出是:

1) Title
2) Title
3) Title
3.1) Subtitle
3.1.1) Section
3.2) Subtitle
4) Title
5) Title
5.1) Subtitle
5.1.1) Section
5.2) Subtitle
5.2.1) Section
5.2.1.1) Subsection
6) Title
7) Title
7.1) Subtitle
7.1.1) Section
7.1.1.1) Subsection
7.1.1.2) Subsection …
Run Code Online (Sandbox Code Playgroud)

bash awk substitution string-substitution

7
推荐指数
1
解决办法
104
查看次数

正则表达式仅用于替换括号外的特定字符

我正在寻找正则表达式(最好是 in R),它可以用 say 替换(任意数量的)特定字符;say;;但仅当文本字符串内的括号内不存在()

注意: 1. 括号内也可能存在多个替换字符

2.数据/向量中没有嵌套括号

例子

  • text;othertext 替换为 text;;othertext
  • text;other(texttt;some;someother);more要替换为text;;other(texttt;some;someother);;more. (即;仅在外部()被替换文本替换)

如果需要澄清,我会尝试解释

in_vec <- c("abcd;ghi;dfsF(adffg;adfsasdf);dfg;(asd;fdsg);ag", "zvc;dfasdf;asdga;asd(asd;hsfd)", "adsg;(asdg;ASF;DFG;ASDF;);sdafdf", "asagf;(fafgf;sadg;sdag;a;gddfg;fd)gsfg;sdfa")

in_vec
#> [1] "abcd;ghi;dfsF(adffg;adfsasdf);dfg;(asd;fdsg);ag"
#> [2] "zvc;dfasdf;asdga;asd(asd;hsfd)"             
#> [3] "adsg;(asdg;ASF;DFG;ASDF;);sdafdf"           
#> [4] "asagf;(fafgf;sadg;sdag;a;gddfg;fd)gsfg;sdfa"
Run Code Online (Sandbox Code Playgroud)

预期输出(手动计算)

[1] "abcd;;ghi;;dfsF(adffg;adfsasdf);;dfg;;(asd;fdsg);;ag" 
[2] "zvc;;dfasdf;;asdga;;asd(asd;hsfd)"             
[3] "adsg;;(asdg;ASF;DFG;ASDF;);;sdafdf"            
[4] "asagf;;(fafgf;sadg;sdag;a;gddfg;fd)gsfg;;sdfa"
Run Code Online (Sandbox Code Playgroud)

regex r string-substitution gsub

7
推荐指数
1
解决办法
263
查看次数

基本 R gsub 和 stringr::str_replace_all 的不同行为?

我希望gsubstringr::str_replace_all在下面返回相同的结果,但只gsub返回预期的结果。我正在开发一个课程来演示,str_replace_all所以我想知道为什么它会在这里返回不同的结果。

txt <- ".72   2.51\n2015**   2.45   2.30   2.00   1.44   1.20   1.54   1.84   1.56   1.94   1.47   0.86   1.01\n2016**   1.53   1.75   2.40   2.62   2.35   2.03   1.25   0.52   0.45   0.56   1.88   1.17\n2017**   0.77   0.70   0.74   1.12   0.88   0.79   0.10   0.09   0.32   0.05   0.15   0.50\n2018**   0.70   0"

gsub(".*2017|2018.*", "", txt)

stringr::str_replace_all(txt, ".*2017|2018.*", "")
Run Code Online (Sandbox Code Playgroud)

gsub返回预期的输出(之前和包括2017,之后和包括的所有内容2018都已被删除)。

gsub 的输出(预期)

[1] "**   0.77   0.70   0.74   1.12   0.88   0.79   0.10   0.09   0.32   0.05   0.15   0.50\n"
Run Code Online (Sandbox Code Playgroud)

然而, …

regex r string-substitution stringr

6
推荐指数
1
解决办法
107
查看次数