相关疑难解决方法(0)

Ruby String与正则表达式分开

这是Ruby 1.8.7但应该与1.9.x相同

我试图拆分一个字符串,例如:

a = "foo.bar.size.split('.').last"
# trying to split into ["foo", "bar","split('.')","last"]
Run Code Online (Sandbox Code Playgroud)

基本上在它代表的命令中拆分它,我试图用Regexp做但不确定如何,想法是使用regexp

a.split(/[a-z\(\)](\.)[a-z\(\)]/)
Run Code Online (Sandbox Code Playgroud)

在这里尝试使用组(\.)来分割它,但这似乎不是一个好方法.

ruby regex metaprogramming

21
推荐指数
2
解决办法
3万
查看次数

在 python 中出现一次时删除子字符串,但在连续两次时不删除

我知道如何删除或替换子字符串。但我只在子字符串不重复出现的情况下才想要它。我做了一个看起来非常难看的解决方法,我想知道是否有更好的解决方案。

假设以下字符串:

test = "Hello\n,I am here now.\n\nSo what's the problem?"  
Run Code Online (Sandbox Code Playgroud)

第一个"\n"应该删除,但第二个"\n\n"不应该。

为此,我将 替换为"\n\n"永远不会出现在正常会话字符串中的内容,例如:

x = test.replace('\n\n','42#*#')
x = x.replace('\n','')
x = x.replace('42#*#','\n\n')
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我想知道是否有更好的解决方案来解决这个问题?

编辑:我尝试了在某个字符上拆分字符串的解决方案,前提是它没有直接跟在另一个特定字符之后

但是,当使用以下正则表达式时:

re.split('(?<!,)\n', test)
Run Code Online (Sandbox Code Playgroud)

我会得到以下结果:

['Hello', ',I am here now.', '', "So what's the problem?"]
Run Code Online (Sandbox Code Playgroud)

所以两者\n\n\n都被删除了,我怎样才能避免这种情况?

python regex string

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

标签 统计

regex ×2

metaprogramming ×1

python ×1

ruby ×1

string ×1