Python搜索字符模式,如果存在则缩进

标签 python regex search str-replace python-re

我有一个文本模式,我想找到它并推到一个新行。模式是 ), 后跟一个空格和一个字符。像这样 -

text_orig =

text cat dog cat dog
),
text rabbit cat dog
), text coffee cat dog. #need to indent this line

它会变成什么地方

text_new =

text cat dog cat dog
),
text rabbit cat dog
), 
text coffee cat dog

我非常接近解决方案,但坚持使用哪种方法。目前,我正在使用 re.sub 但我相信这样会删除文本的第一个字母 -

text_new =

text cat dog cat dog
),
text rabbit cat dog
), 
ext coffee cat dog # removes first letter
re.sub('\),\s\w','), \n',text_orig)

我需要 search 而不是 sub 吗?非常感谢帮助

最佳答案

你可以使用

re.sub(r'\),[^\S\n]*(?=\w)', '),\n', text_orig)

参见 regex demo .

或者,如果模式应该只在一行的开头匹配,您应该添加 ^re.M 标志:

re.sub(r'^\),[^\S\n]*(?=\w)', '),\n', text_orig, flags=re.M)

这里,

  • ^ - 行首(带有 re.M 标志)
  • \), - ), 子串
  • [^\S\n]* - 除 LF 字符外的零个或多个空格
  • (?=\w) - 一个积极的前瞻,需要紧靠当前位置右侧的单词 char。

关于Python搜索字符模式,如果存在则缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66805321/

相关文章:

Android 可搜索配置未附加到 SearchView

python - 在 Pandas 中将 float 转换为字符串

python - 如何在没有参数的情况下调用具有参数的函数

regex - 为什么这个正则表达式空间在最后一场比赛中?

python - 正则表达式字典 [谷歌类型搜索和正则表达式匹配]

javascript - 设置值后 PHP 变量似乎为空

python - 如何找到最大的轮廓?

python - scrapy response.xpath 在具有默认命名空间的 xml 文档上返回空数组,而 response.re 有效

php - 如何通过 php 脚本搜索 mysql 数据库。 (不工作)

c - 如何在 C 语言的二叉搜索树中正确插入/删除?