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

如何用单个Python正则表达式判断标准句子格式?

合并正则表达式实现句子格式校验

你可以用一个完整的正则表达式同时校验开头和结尾的规则,直接替换原来的两个re.search调用。修改后的代码如下:

import re
def check_sentence(text):
    # 使用fullmatch确保整个字符串完全符合规则
    match_result = re.fullmatch(r"^[A-Z].*[\.?]$", text)
    return match_result is not None

# 测试用例输出和原代码一致
print(check_sentence("Is this is a sentence?")) # True
print(check_sentence("is this is a sentence?")) # False
print(check_sentence("Hello")) # False
print(check_sentence("1-2-3-GO!")) # False
print(check_sentence("A star is born.")) # True

正则表达式详解

这个正则^[A-Z].*[\.?]$的每个部分作用:

  • ^[A-Z]:锚定字符串开头,必须是一个大写英文字母
  • .*:匹配开头和结尾之间的任意内容(包括0个字符,比如"A."这种短句子也符合规则)
  • [\.?]$:锚定字符串结尾,必须是句号.或问号?(字符集里的.不需要转义,写[.?]也可以)
  • re.fullmatch:确保整个字符串完全匹配正则,而不是只匹配其中一段子串

为什么直接拼接原来的正则会失败?

如果你直接把两个正则拼写成^[A-Z][\.?]$,这个正则只能匹配长度为2的字符串(比如"A?"),完全漏掉了句子中间的内容。必须加上.*来匹配开头和结尾之间的任意字符,才能覆盖所有符合格式的句子。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:25:12