【发布时间】:2020-07-15 05:19:48
【问题描述】:
我通常把正则表达式当作母语来使用,但今天我被这个谜题难住了。我需要捕获除最后一个主题标签之外的字符串的所有文本。除最后一个之外的任何主题标签都应包括在内,如果根本没有主题标签,它也需要匹配。
测试用例 1:
- 输入:
Foo bar #baz - 匹配:
Foo bar
测试用例 2:
- 输入:
Foo bar #baz #qux - 匹配:
Foo bar #baz
测试用例 3:
- 输入:
Foo bar - 匹配:
Foo bar
由于我在 (Zapier) 中使用它的环境,我有一个严格的约束,即无论情况如何,我都需要在具有相同组号的单个捕获组中匹配字符串。 Zapier 使用 Python 引擎 FWIW。
上下文是从 Instagram 自动将照片发布到 Twitter,但需要将长度限制为 280 个字符。由于 Zapier 的 truncate 功能不允许切割干净的单词边界,因此 280 个字符可能会在主题标签的中间用完,当 Twitter 自动链接它时,可能会导致令人尴尬的结果。 (Zapier 的截断确实允许附加省略号,这可以缓解常规单词的问题。)由于包含每个主题标签并不重要,我想丢弃最后一个,以防它被截断。
【问题讨论】:
标签: regex