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*'确实会更好。