gpt4 book ai didi

regex - 正则表达式可以用于裁剪吗?

转载 作者:行者123 更新时间:2023-12-05 01:18:25 24 4
gpt4 key购买 nike

假设我有这三行:

the quick brown fox
the brown fox
the quick brown quick fox

可以使用正则表达式来裁剪每行中除了单词 quick 之外的所有内容吗? ?

最终结果如下所示:
quick

quickquick

最佳答案

具体取决于您使用的语言,但这里有一些使用正则表达式(Python 中的代码示例)执行此操作的常用方法:

  • 查找目标字符串的所有匹配项,然后将每个匹配项合并为一个字符串:
    >>> import re
    >>> s = 'the quick brown quick fox'
    >>> ''.join(re.findall('quick', s))
    'quickquick'
  • 构造一个正则表达式来匹配所有内容 除了 您的目标字符串,然后用空字符串替换每个匹配项(这通常比列出的其他替代方案要困难得多):
    >>> re.sub('(?!quick|(?<=q)uick|(?<=qu)ick|(?<=qui)ck|(?<=quic)k).', '', s)
    'quickquick'
  • 使用捕获组匹配所有内容,直到出现目标字符串,然后仅替换为目标字符串:
    >>> re.sub('.*?(quick|$)', r'\1', s)
    'quickquick'

  • 如果您的字符串在您的示例中有多行,您可以先在换行符处拆分字符串,或者调整解决方案以保留换行符,例如:
    >>> s = '''the quick brown fox
    ... the brown fox
    ... the quick brown quick fox'''
    >>> print ''.join(re.findall('quick|[\r\n]', s))
    quick

    quickquick
    >>> print re.sub('.*?(quick|$)', r'\1', s, flags=re.MULTILINE)
    quick

    quickquick

    关于regex - 正则表达式可以用于裁剪吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13035047/

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