gpt4 book ai didi

python - 尝试匹配文本中的 '#'

转载 作者:行者123 更新时间:2023-11-30 23:58:16 24 4
gpt4 key购买 nike

当且仅当“#”前面有换行符、空格或者是字符串中的第一个字符时,我才尝试匹配“#”后跟字母。前两个我已经完成,但如果它是字符串中的第一个字符,我很难匹配。我试图找到 '\A' 的用途,但将其添加到包含换行符和空格的类中是行不通的。我错过了什么?

到目前为止我想出的正则表达式是:

from re import findall, escape
from string import punctuation, whitespace

NEWLINE = """\r\n?|\n"""
INVALID_TAG_CHARACTERS = escape(punctuation.replace('-', '').replace('_', '') + whitespace)
VALID_TAGS = r'[\s%s]+#[^%s]+' % (NEWLINE, INVALID_TAG_CHARACTERS)
tags = findall(VALID_TAGS, text)

最佳答案

我认为这就是您正在寻找的:

result = re.findall("(?:^|\s)(#[a-zA-Z]+)", text, re.MULTILINE)

(?:^|\s) 是一组非分组括号(我们不希望这部分出现在我们的结果中)。使用多行标志,它将匹配字符串的开头,或者前面的换行符或空格。我相信,下一组是你的“标签”。如果不是 # 后面的字母,则您将不得不修改第二组。

关于python - 尝试匹配文本中的 '#',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com