2024-03-28 19:13:57 发布
网友
字符串示例:
str = "test sdf sfwe \n \na dssdf
我要替换:
\na
与
a
其中“a”可以是任何字符。你知道吗
我试过:
str = "test \n \na" res = re.sub('[\n.]','a',str)
但是如何将字符存储在\n后面并将其用作替换?你知道吗
\n
我认为,最好的方法是,你不必在你的文本中有更多的空间如下:
string = "test sdf sfwe \n \na dssdf" import re ' '.join(re.findall('\w+',string)) 'test sdf sfwe a dssdf'
您可以将此正则表达式与捕获组一起使用:
>>> s = "test sdf sfwe \n \na dssdf" >>> >>> print re.sub(r'\n(.)', r'\1', s) test sdf sfwe a dssdf
搜索正则表达式r'\n(.)'将匹配\n后跟任何字符,并捕获组#1中的下列字符
r'\n(.)'
Replacementr'\1'是对捕获组#1的反向引用,捕获组#1放回原始字符串中。
r'\1'
最好避免将str作为变量名,因为它在python中是保留关键字(函数)。
str
如果所说的任何字符指的是任何非空格字符,则将此正则表达式与\S(非空格字符)一起使用,而不是.:
\S
.
>>> print re.sub(r'\n(\S)', r'\1', s) test sdf sfwe a dssdf
此外,这种基于前瞻性的方法也适用于不需要任何捕获组的情况:
>>> print re.sub(r'\n(?=\S)', '', s) test sdf sfwe a dssdf
请注意,[\n.]将匹配\n或文字点中的任何一个,而不是\n后跟任何字符
[\n.]
查找所有匹配项:
matches = re.findall( r'\n\w', str )
全部更换:
for m in matches : str = str.replace( m, m[1] )
就这些,伙计们!=)
我认为,最好的方法是,你不必在你的文本中有更多的空间如下:
您可以将此正则表达式与捕获组一起使用:
搜索正则表达式
r'\n(.)'
将匹配\n
后跟任何字符,并捕获组#1中的下列字符Replacement
r'\1'
是对捕获组#1的反向引用,捕获组#1放回原始字符串中。最好避免将
str
作为变量名,因为它在python中是保留关键字(函数)。如果所说的任何字符指的是任何非空格字符,则将此正则表达式与
\S
(非空格字符)一起使用,而不是.
:此外,这种基于前瞻性的方法也适用于不需要任何捕获组的情况:
请注意,
[\n.]
将匹配\n
或文字点中的任何一个,而不是\n
后跟任何字符查找所有匹配项:
全部更换:
就这些,伙计们!=)
相关问题 更多 >
编程相关推荐