我是 Python 和正则表达式的新手。当我在做在线课程时,遇到了这个简单的任务。它检查标准句子:行是否以大写字母开头并以句点或问号结尾。这是我的工作代码,但它使用了两个 re.search,需要减少到一个。如果我添加两个正则表达式 exp。它给出了不同的输出。
这是我的代码:
import re
def check_sentence(text):
result = re.search(r"[\.\?]$", text) and re.search(r"^[A-Z]", text)
return result != 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
我需要单一表达。将 r'^[A-Z]' 和 r'[.?]$' 组合起来。但如果我只使用 : r'^[A-Z][.?]$' 它会给出不同的 O/P。
感谢您帮助解释。
你可以像这样合并:
import re
def check_sentence(text):
result = re.search(r"^[A-Z].*[\.\?]$", text)
return result != None