如何在结尾的单词中检查!?,().
等特殊符号?例如,Hello???
或Hello,,
或Hello!
会返回True
,但H!??llo
或Hel,lo
会返回False
。
我知道如何检查字符串的唯一最后一个符号但是如何检查两个或多个最后一个字符是否为符号?
答案 0 :(得分:3)
您可能必须使用正则表达式。
import re
def checkword(word):
m = re.match("\w+[!?,().]+$", word)
if m is not None:
return True
return False
正则表达式是:
\w+ # one or more word characters (a-zA-z)
[!?,().]+ # one or more of the characters inside the brackets
# (this is called a character class)
$ # assert end of string
使用re.match
强制匹配从字符串的开头开始,否则我们必须在正则表达式之前使用^
。
答案 1 :(得分:1)
您可以尝试这样的事情:
word = "Hello!"
def checkSym(word):
return word[-1] in "!?,()."
print(checkSym(word))
结果是:
True
尝试提供不同的字符串作为输入并检查结果。
如果您想要查找字符串末尾的每个符号,可以使用:
def symbolCount(word):
i = len(word)-1
c = 0
while word[i] in "!?,().":
c = c + 1
i = i - 1
return c
使用word = "Hello!?."
进行测试:
print(symbolCount(word))
结果是:
3
答案 2 :(得分:0)
你可以试试这个。
string="gffrwr."
print(string[-1] in "!?,().")
答案 3 :(得分:0)
如果你想得到给定字符串末尾的'特殊'字符的计数。
special = '!?,().'
s = 'Hello???'
count = 0
for c in s[::-1]:
if c in special:
count += 1
else:
break
print("Found {} special characters at the end of the string.".format(count))
答案 4 :(得分:0)
您可以使用re.findall
:
import re
s = "Hello???"
if re.findall('\W+$', s):
pass