我试图用Python的re-library在.md文档中获取顶级降价标题(即,以单个哈希开头的标题--#简介),但我一辈子都搞不清楚这一点。你知道吗
下面是我尝试执行的代码:
import re
pattern = r"(# .+?\\n)"
text = r"# Title\n## Chapter\n### sub-chapter#### What a lovely day.\n"
header = re.search(pattern, text)
print(header.string)
来自print(header.string)
的结果是:
# Title\n## Chapter\n### sub-chapter#### What a lovely day.\n
而我只想要# Title\n
regex101上的这个例子说它应该可以工作,但是我不明白为什么它不能工作。https://regex101.com/r/u4ZIE0/9
得到这个结果是因为使用了
header.string
,它调用了Match object上的.string,这将返回传递给match()
或搜索()
的字符串。你知道吗字符串中已包含新行:
因此,如果您使用您的模式(请注意,它也将匹配换行符),您可以将代码更新为:
Python demo
注意,re.search查找正则表达式产生匹配的第一个位置。你知道吗
另一个匹配您的值的选项可以是从字符串的开始处匹配
#
,后跟空格,然后是除换行符以外的任何字符,直到字符串的结尾:例如:
Python demo
如果后面不能再出现
#
,也可以使用negated character class来匹配#
或换行符:我猜我们希望提取
# Title\n
,在这种情况下,您的表达式似乎工作正常,只需稍加修改:DEMO
测试
相关问题 更多 >
编程相关推荐