正则表达式匹配字符串模式中的某些字符

2024-05-19 13:25:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有很多这样的字符串模式的例子,但我想展示一些例子。在

from:   [name:  Illianney Amada
id:     674176087]
from:   [name:  Natalia Morel-Gibbs
id:     100003799207624]
from:   [name:  Jules Kaneyge Pand
id:     100000110811550]

并且,我想这样说明参数类型:(观察StringSequenceOfNumber

^{pr2}$

但事实上,它是由这个代表的

from:\t[name:\tString\nid:\tSequenceofNumber]

因此,我想将“String”“id:”之间的“\n”替换为“,\t”或制表符。结果应该是这样的

from:\t[name:\tString,\tid:\tSequenceofNumber]\n
from:\t[name:\tString,\tid:\tSequenceofNumber]\n
from:\t[name:\tString,\tid:\tSequenceofNumber]\n

或者像这样

from:   [name:  String,    id:     SequenceOfNumber]
from:   [name:  String,    id:     SequenceOfNumber]
from:   [name:  String,    id:     SequenceOfNumber]

注意:我实现了用Python模块替换regexre


Tags: 字符串namefromidstring模式例子tid
2条回答

更新:

import re
fixed = re.sub(r"(\[name:.*?)\n", r"\1,\t", originalString, re.M)

结果:

^{pr2}$

工作示例:http://regex101.com/r/wN7aT0


旧:

如果您只有一个\n,那么您可以:

originalString = "from:\t[name:\tString\nid:\tSequenceofNumber]"
fixedString = ",\t".join(originalString.split("\n"))

这将拆分\n上的字符串,并将其与,\t连接起来,结果是:

^{4}$

注意:在原来的示例中,您没有在变量中实际设置字符串。你可能是从一个文本文件打开这个?如果是这样的话,答案会发生巨大的变化,因为你可能一次只循环一行。在

如果只替换模式中的'\n',则如下所示:

import re

data = """from:   [name:  Jules Kaneyge Pand
id:     100000110811550]
from:   [name:  abcd
id:     100000110811550]
           """

print ',\tid:'.join(re.split("[^\]]\s*\n\s*id:", data))

您将获得:

^{pr2}$

相关问题 更多 >