我想在python中使用正则表达式来查找所有以 \
.
之后,正则表达式应该寻找一个 [
在匹配的单词中,然后将其替换为下划线。
以下是一个例子:
input_string = SomeText \Word[0] Word[3] \SomeText[123] SomeText[10] SomeText
output_string = SomeText \Word_0] Word[3] \SomeText_123] SomeText[10] SomeText
以下python代码将方括号替换为下划线:
output_string = re.sub(<regex>, '_', input_string)
我写这个正则表达式是为了找到以 \
:
\\[^\s]+
https://regex101.com/r/d4yo9k/1
但现在我不知道如何找到方括号。
有人能提出一些解决这个问题的办法吗?
2条答案
按热度按时间flvtvl501#
您可以定义一个函数,该函数接受match对象并返回替换字符串:
并将其作为替换参数传递给
re.sub
:vawmfj5a2#
您要匹配:
并替换为:
这是第1组中的任何一个,后面跟一个“u”。
(
-第一组开始(?:^| )
-匹配字符串或空格的开头\\
-匹配反斜杠\w*?
-非贪婪地匹配0个或多个单词字符)
-第1组结束\[
-匹配[参见正则表达式演示
请注意,您不应该命名变量
input
,这是内置函数的名称。印刷品: