python 正则表达式 - 将换行符 (\n) 替换为其他内容

标签 python regex

我正在尝试将多个连续的换行符后跟一个大写字母转换为“____”,以便我可以解析它们。

例如,

i = "Inc\n\nContact"
i = re.sub(r'([\n]+)([A-Z])+', r"____\2", i) 

In [25]: i
Out [25]: 'Inc____Contact'

这个字符串工作正常。我可以稍后使用 ____ 解析它们。

但是它不适用于这个特定的字符串。

i =  "(2 months)\n\nML"
i = re.sub(r'([\n]+)([A-Z])+', r"____\2", i)

Out [31]: '(2 months)____L'

它吃了大写字母 M。 我在这里缺少什么?

最佳答案

EDIT 要将多个连续的换行符 (\n) 替换为 ____,应该这样做:

>>> import re
>>> i =  "(2 months)\n\nML"
>>> re.sub(r'(\n+)(?=[A-Z])', r'____', i)
'(2 months)____ML'

(?=[A-Z]) 是断言“换行符后跟大写字母”。 REGEX DEMO .

关于python 正则表达式 - 将换行符 (\n) 替换为其他内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36091633/

相关文章:

Python PDF 直接读取它在 PDF 中的样子

mysql - 使用 [[ :<:]][[:>:]]? 时,空格是否被视为字边界

regex - 使用 RegEx 查找字符串中特定文本后的数字

Python 循环 : Precise way to handle mapping matching lists

python - 使用 PIL 使文本大小自动调整为图像

r - 带引号和分号的 str_extract 正则表达式

regex - 过滤掉不在集合中的字符

java - 正则表达式匹配除模式之外的所有内容

python - 如果任何值不等于数字,如何从 Pandas 数据框中选择行?

python - Bottle 服务器路由到多个 html 页面