2024-10-03 06:30:52 发布
网友
我想拆分包含数字的文本
text = "bla bla 1 bla bla bla 142 bla bla (234.22)"
在每个数字前后加一个'\n'。你知道吗
'\n'
> "bla bla \n1\n bla bla bla \n142\n bla bla (234.22)"
下面的函数给了我子字符串,但它抛弃了模式,即数字。用python中包含模式的内容替换模式的最佳方法是什么?你知道吗
re.split(' [0123456789]+ ', text)
试试这个代码!!这也许有用!你知道吗
import re text = "bla bla 1 bla bla bla 142 bla bla" replaced = re.sub('([0-9]+)', r'\n\1\n',text) print(replaced) Output: 'bla bla \n1\n bla bla bla \n142\n bla bla'
使用
s = re.sub(r' \d+ ', '\n\\g<0>\n', s)
参见regex demo。你知道吗
只替换独立的数字作为整个单词使用
s = re.sub(r'\b\d+\b', '\n\\g<0>\n', s)
如果要匹配用空格括起来的数字,请仅使用
re.sub(r'(?<!\S)\d+(?!\S)', '\n\\g<0>\n', s) # also at the start/end of string re.sub(r'(?<=\s)\d+(?=\s)', '\n\\g<0>\n', s) # only between whitespaces
实际上,替换可以指定为'\n\g<0>\n',因为\g是一个未定义的转义序列,在这种情况下反斜杠将被视为文字字符,并将保留在结果字符串中以形成regex backreference构造。你知道吗
'\n\g<0>\n'
\g
Python demo:
import re s = "bla bla 1 bla bla bla 142 bla bla" s = re.sub(r'\b\d+\b', '\n\\g<0>\n', s) print(s) # => bla bla \n1\n bla bla bla \n142\n bla bla
试试这个代码!!这也许有用!你知道吗
使用
参见regex demo。你知道吗
只替换独立的数字作为整个单词使用
如果要匹配用空格括起来的数字,请仅使用
实际上,替换可以指定为
'\n\g<0>\n'
,因为\g
是一个未定义的转义序列,在这种情况下反斜杠将被视为文字字符,并将保留在结果字符串中以形成regex backreference构造。你知道吗Python demo:
相关问题 更多 >
编程相关推荐