Python 在字符串模式中匹配特定字符的正则表达式
我有很多这样的字符串模式的例子,但我想展示一些例子Python 在字符串模式中匹配特定字符的正则表达式,python,regex,Python,Regex,我有很多这样的字符串模式的例子,但我想展示一些例子 from: [name: Illianney Amada id: 674176087] from: [name: Natalia Morel-Gibbs id: 100003799207624] from: [name: Jules Kaneyge Pand id: 100000110811550] 并且,我想说明如下参数类型:(WatchString和SequenceOfNumber) 但实际上,它
from: [name: Illianney Amada
id: 674176087]
from: [name: Natalia Morel-Gibbs
id: 100003799207624]
from: [name: Jules Kaneyge Pand
id: 100000110811550]
并且,我想说明如下参数类型:(WatchString和SequenceOfNumber)
但实际上,它是从这个角度来表现的
from:\t[name:\tString\nid:\tSequenceofNumber]
因此,我想用,\t“或制表符替换“String”和“id:”之间的“\n”。结果应该是这样的
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]
或者像这样
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模块替换正则表达式re更新:
import re
fixed = re.sub(r"(\[name:.*?)\n", r"\1,\t", originalString, re.M)
结果:
from: [name: Illianney Amada, id: 674176087]
from: [name: Natalia Morel-Gibbs, id: 100003799207624]
from: [name: Jules Kaneyge Pand, id: 100000110811550]
工作示例:
旧版:
import re
fixed = re.sub(r"(\[name:.*?)\n", r"\1,\t", originalString, re.M)
如果您只有一个\n
,您可以执行以下操作:
originalString = "from:\t[name:\tString\nid:\tSequenceofNumber]"
fixedString = ",\t".join(originalString.split("\n"))
这将拆分\n
上的字符串,并将其与,\t
重新连接在一起,从而导致:
from:\t[name:\tString,\tid:\tSequenceofNumber]
警告:在最初的示例中,您实际上没有在变量中设置字符串。您是否正在从文本文件打开此文件?如果是这样的话,答案会发生巨大的变化,因为您可能一次只循环一行。如果仅替换模式中的“\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))
您将获得:
from: [name: Jules Kaneyge Pan, id: 100000110811550]
from: [name: abc, id: 100000110811550]
@埃弗顿:对不起,我刚刚编辑了我的问题。是Python,谢谢。我忘了在我的问题中解释。关于模式,我有很多。因此,将有许多“\n”:\好吧,不管怎样,如果你想全部替换它们,这实际上是可行的。如果你只想要一把,那么你需要更复杂的东西。你的解决方案很好,但我想再次说声对不起。因为我并没有提到单个字符串变量中字符串模式的倍数。所以,您的解决方案也会影响“\n”between模式。是的,绝对会影响所有模式。我看到你更新的帖子,会整理出一个正则表达式。更新,见新正则表达式示例。