【发布时间】:2019-08-01 13:20:38
【问题描述】:
给定一个字符串列表:['string_a', 'string_b', 'string_c']
如果我用\n 加入这些字符串:
'\n'.join(['string_a', 'string_b', 'string_c'])
结果是(案例0):'string_a\nstring_b\nstring_c'
如果我打印结果(案例 1):
string_a
string_b
string_c
鉴于我想使用正则表达式找到包含 string_b 的行及其下方的所有内容,但这就是我找到的:https://regex101.com/r/yF4u2I/1
正则表达式r'string_b\n.+'可以在case 1中找到文本,但在case 0中找不到。
但是,如果我将正则表达式更改为 r'string_b\\n.+',它只会在 case 0 中找到文本。发生这种情况是因为 \n 被视为字符而不是换行符。
如何加入字符串列表以获得多行字符串?或者使用正则表达式找到它的另一种方法是什么?
【问题讨论】:
-
您尝试打印了吗?
print('\n'.join(['string_a', 'string_b', 'string_c'])) -
“这是因为 \n 被认为是一个字符而不是换行符。”...
\n是一个字符,通常呈现为换行符。相反,检查正则表达式中的行首和行尾标记,这些可能会有所帮助 -
您可以在此处使用替代方案:
string_b(?:\n|\\n).+see forked regex101 -
您想要哪种方式?您的问题和 cmets 不清楚。提供 1)真正的文字字符串或 - 更好的 - 您想要使用的字符串文字,2)解释您需要在该字符串中匹配的内容
标签: python regex string newline