gpt4 book ai didi

python - 正则表达式 - 交换两个短语

转载 作者:太空宇宙 更新时间:2023-11-03 16:12:10 25 4
gpt4 key购买 nike

Python 3。每行由一段文本、管道符号和第二段文本构成。我想交换两段文字并删除管道。这是到目前为止的代码:

p = re.compile('^(.*) \| (.*)$', re.IGNORECASE)
mytext = p.sub(r'\2\1', mytext)

但由于某种我无法解决的原因,它不匹配。它应该匹配的文本示例是(讽刺的是):

(https://www.youtube.com/watch?v=NIKdKCQnbNo) | [Regular Expressions 101 - YouTube]

最终应该是这样的:

[The Field Expedient Pump Drill - YouTube](https://www.youtube.com/watch?v=4QDXUxTrlRw)

(换句话说,代码将链接格式化为 Markdown 转换器所需的格式)。

完整代码如下:

#! /usr/bin/env python3

import re, os

def create_text(myinputfile):
with open(myinputfile, 'r', encoding='utf-8') as infile:
mytext = infile.read()
return mytext

def reg_replace(mytext):
p = re.compile('^(.*) \| (.*)$', re.IGNORECASE)
mytext = p.sub(r'\2\1', mytext)
return mytext

def write_out(mytext, myfinalfile):
with open(myfinalfile, 'w') as myoutfile:
myoutfile.write(mytext)

def main():
mytext = create_text('out.md')
mytext = reg_replace(mytext)
write_out(mytext, 'out1.md')
os.rename("out.md", "out_original.md")
os.rename("out1.md", "out.md")

main()

最佳答案

这应该对你有帮助。 (在 regex101 上查看演示)

(\S+)\s*\|\s*(.+)

子项:

 \2\1

关于python - 正则表达式 - 交换两个短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39183970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com