忽略字符串

时间:2018-03-11 17:32:26

标签: regex python-3.x character ignore

我是python的新手。 我写了一个pigLatin代码,我需要代码来忽略非字符,即我希望它们保持在字符串中的位置。因此,例如,当使用#my; 1myth'当它被转换为piglatin时,我希望它是例如1ythmway,其中数字不受影响。我尝试使用正则表达式,但我只能让它适用于第一个条件。 以下是我的代码:

import re
Vowels =("aeiouAEIOU")
y = input("\n Enter sentence ")
x = y.split()
for word in x:
 a =re.sub('[^a-zA-Z]+', '',word);

 if a[0] in Vowels:
      word +='hay'

 elif all(char not in Vowels for char in word):
          word = word[1:] + word[0]                                                                                                                          
          word += 'way' 

 elif word[0] not in Vowels:
          for i, j in enumerate(word):
              if j in Vowels:break
          word = word[i:] + word[:i]
          word += 'ay'

          print(word, end = ' ')

2 个答案:

答案 0 :(得分:0)

你可以像下面这样设置一个尝试 - 除外条件:(这只是一个例子。根据你的情况实施)

    words = '1myth'
w = list(words)
for i in w:
    try:
        if type(int(i)) is int:
            pass
    except:
        print(i) //You can write your character trasforming conditions here.

这样你可以忽略所有非字符。我希望它有用。

答案 1 :(得分:0)

使用isdigit()作为Patrick建议,更容易忽略数字的方法。在这里,我将所有字符替换为" n"显示数字不变。

>>> word = '2math'
>>> new_word = ''
>>> for char in word:
...     if char.isdigit ():
...         new_word += char
...     else:
...         new_word += char.replace(char, 'n')
... 
>>> new_word
'2nnnn'