Python:多行正则表达式问题

Python:多行正则表达式问题,python,regex,Python,Regex,我有一根很长的绳子,第一行是: text = """ [text begins here] ... """ 我想删除它开头的所有\n字符,这样我只能得到如下内容: text = """[text begins here] ... """ 我正在尝试以下方法: pattern = r"^\n*" search = re.compile(pattern, re.S) out = re.sub(pattern, "", text) 但它不能捕捉或替换任何东西 我怎样才能解决这个问题 (注

我有一根很长的绳子,第一行是:

text = """




[text begins here] ... """
我想删除它开头的所有
\n
字符,这样我只能得到如下内容:

text = """[text begins here] ... """
我正在尝试以下方法:

pattern = r"^\n*"
search = re.compile(pattern, re.S)
out = re.sub(pattern, "", text)
但它不能捕捉或替换任何东西

我怎样才能解决这个问题


(注意:我需要使用正则表达式,而不是字符串切片或其他方法。)

您可以使用
str.lstrip在文本上执行左带:

out = text.lstrip()

您的字符串中可能不止换行符(
\n
)(如回车符(
\r
)。您应该像其他人所说的那样使用lstrip,但是下面的正则表达式应该可以工作:

re.sub(r'^[\r\n]*', '', text)

你试过使用
strip()
吗?你的三行代码对我来说非常有用。可能您的
文本中有前导空格或其他内容。(而且,不得不使用正则表达式也很奇怪,因为
lstrip
最适合这种类型;不过,我不会判断你的理由。干杯。)@anubhava我以前从未听说过
search
,它的用途是什么?
search
是python中用于执行基于正则表达式的函数search@FuzzySquid我需要一个正则表达式解决方案。谢谢。但是我需要一个正则表达式解决方案。@nVaguhan您的正则表达式对我有效,这可能是一个特定于平台的问题,正如@AnonCoward在评论中提到的,您可以通过使用
str.lsplit
来避免。为什么不使用
\s
来捕获所有空白?@Dion问题是如何删除前导的换行,所以我认为其他空白应该保持不变。否则r'^\s*'确实会更好。