You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则表达式匹配行首为'h'且行尾为'o'的文本

解决行首为'h'且行尾为'o'的正则匹配问题

你的代码返回None是因为当前正则^ho$的逻辑是匹配仅由'h'和'o'两个字符组成的字符串,而hello中间包含其他字符,自然无法匹配。

要实现行首为'h'、行尾为'o'的匹配,需要允许开头的'h'和结尾的'o'之间存在任意字符,正确的正则表达式应该是:^h.*o$

各部分含义:

  • ^:锚定字符串的起始位置
  • h:匹配起始的'h'字符
  • .*:匹配任意数量(包括0个)的任意字符(默认不匹配换行符)
  • o$:锚定字符串的结束位置并匹配'o'

修正后的代码:

import re
message = 'hello' # Text
print(re.search("^h.*o$", message)) # 返回匹配对象,不再是None

如果需要处理多行文本(匹配每一行的行首h、行尾o),可以添加re.MULTILINE标志:

import re
message = '''hello
hallo
test line
hxyzzo'''
# 提取所有符合条件的行
matches = re.findall("^h.*o$", message, flags=re.MULTILINE)
print(matches) # 输出 ['hello', 'hallo', 'hxyzzo']

额外说明:

  • 如果要求'h'和'o'之间至少有一个字符,将.*替换为.+即可(这样ho这类两个字符的字符串会被排除)
  • 如果需要匹配包含换行符的内容,添加re.DOTALL标志,让.*可以匹配换行

内容的提问来源于stack exchange,提问作者spot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:25:17