检查字符串结尾中的特殊符号

时间:2017-10-29 22:01:39

标签: python python-3.x

如何在结尾的单词中检查!?,().等特殊符号?例如,Hello???Hello,,Hello!会返回True,但H!??lloHel,lo会返回False

我知道如何检查字符串的唯一最后一个符号但是如何检查两个或多个最后一个字符是否为符号?

5 个答案:

答案 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