打印字符串,如果字符串中符合特定字符结束

问题描述:

如何打印每一个在“JE”在一条线上打印字符串,如果字符串中符合特定字符结束

例如结尾的字符串:

for line in sys.stdin: 
    for string in line: 
     if string ends with 'je': 
      print string 

且仅当该字符串以'.... je'结尾,所以不包含'je'。如果字符串以'.... je?'结尾或'.... je'。去掉 '? ,。 '。然后它应该打印字符串。帮助将不胜感激。

+0

什么是*“一行中的每个字符串”*? – zvone

+0

Dat huisje daar。 Dat boompje daar。 Een reisje hier。打印:huisje/boompje/reisje – Minero

+0

那么,每一个**字**在一行吗? – zvone

假设您的字符串名称dosent允许'?,。'完全可以工作。

for line in sys.stdin: 
    for string in line: 
     string = string.strip('.,?') 
     if string.endswith('je'): 
      print(string) 

你的代码有两个问题。 for string in line:会遍历每一个字符,而不是通过每一个字。顺便说一句,你不应该命名你的变量stringfor word in line.split():会做你所期望的。

另外,if string ends with 'je':应该是if word.endswith('je'):。如果您不想匹配确切的单词“je”,则可以将其更改为if word.endswith('je') and word != "je":

最终代码,包括取消!?

f = open("a.txt", "r") 

for line in f: 
    for word in line.split(): 
     word = word.rstrip("!?") 
     if word.endswith('je') and word != "je": 
      print(word) 

需要注意的是,如果一个词有几个?!结束后,他们都将移除。

+0

谢谢这一个作品 – Minero

+0

有没有办法删除'je'?我只想要一个'...... je'而不是'je' – Minero

+0

我编辑了我的代码。现在它也从字符串中删除'?'&'!'。 – Efferalgan