相关疑难解决方法(0)

仅使用Regex替换某些组

我们假设我有以下正则表达式:

-(\d+)-
Run Code Online (Sandbox Code Playgroud)

我想更换,使用C#,1组(\d+)AA,获得:

-AA-
Run Code Online (Sandbox Code Playgroud)

现在我用以下方法替换它:

var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-"); 
Run Code Online (Sandbox Code Playgroud)

但我真的不喜欢这个,因为如果我改变模式来匹配_(\d+)_,我也必须改变替换字符串_AA_,这是违反DRY原则的.

我正在寻找类似的东西:

保持匹配的文本的确切方式,但更改组1 this text和组2 another text...

编辑:
这只是一个例子.我只是在寻找一种做我上面所说的通用方法.

它应该适用于:

anything(\d+)more_text 以及你能想象到的任何模式.

我想要做的只是替换组,并保持匹配的其余部分.

c# regex replace

179
推荐指数
5
解决办法
11万
查看次数

在特殊字符前面添加空格

如果这些特殊字符粘在一个单词上,如何在Python中创建RE以在这些特殊字符前面添加空格,?!

这是输入字符串:

myString= 'I like him, but is he good? Maybe he is good , smart, and strong.'
Run Code Online (Sandbox Code Playgroud)

所需的输出(如果特殊字符不粘在单词上,则不会被修改):

modifiedString= 'I like him , but is he good ? Maybe he is good , smart , and strong.'
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个回复:

modifiedString= re.sub('\w,' , ' ,' ,myString)
Run Code Online (Sandbox Code Playgroud)

但它给出了错误的结果。它删除逗号之前的最后一个字符,这是结果示例:

modifiedString = 'I like hi , but is he good? Maybe he is goo , smar , and strong.'
Run Code Online (Sandbox Code Playgroud)

有什么建议可以解决这个问题吗?

python regex string

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

标签 统计

regex ×2

c# ×1

python ×1

replace ×1

string ×1