- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想删除字符串中的元音,为简单起见,我在下面的代码中只包含了小写字母
for x in "aeiou":
st = st.replace(i,"")
return st
这工作正常,但是我想知道如何处理我还想在包含元音的字符串中删除 y 的场景,如果它在左侧或右侧有任何元音例如,在“may”上运行函数后,它应该返回“m”,类似于“mystery”到“mystry”。
最佳答案
这可能是一项家庭作业,但实际上最简单(虽然不一定是最快的)是使用正则表达式:
import re
p = re.compile(r'(?i)y?[aeiou]y?')
p.sub('', 'may')
# 'm'
p.sub('', 'mystery')
# 'mystry'
使用纯 python,您可以列出您的字符串,遍历每个字符,相应地删除字符(是的,您已经这样做了,因此您需要使用 if 语句修改现有代码以解决“y”的情况), 然后重新加入。这是一个例子。
def remove_vowels_with_y(string):
# Cache vowel set for better lookup performance.
v = set('aeiouAEIOU')
# Listify your string. This is because strings are immutable.
chars = list(string) + [''] # Sentinel character.
# Initialization.
filtered = []
prev_is_vowel = False
for i, c in enumerate(chars[:-1]):
# Add elements to `filtered` if conditions are met.
if not (c in v or (c in 'yY' and (prev_is_vowel or chars[i+1] in v))):
filtered.append(c)
prev_is_vowel = c in v
# Join filtered list and return result.
return ''.join(filtered)
remove_vowels_with_y('may')
# 'm'
remove_vowels_with_y('mystery')
# 'mystry'
关于python - 在python中的字符串中的任何元音之前或之后立即删除 "y",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54837966/
我试图在 haskell 上创建一个函数,我知道该函数的定义如下: justWithA : [Char] -> Bool justWithA [] = True justWithA (x:xs) |
我试图在 haskell 上创建一个函数,我知道该函数的定义如下: justWithA : [Char] -> Bool justWithA [] = True justWithA (x:xs) |
我正在尝试计算字符串中元音的总数。我正在使用 strlen 来获取字符串的总长度,但是当我尝试按每个字母对字符串进行计数时,它说 C++ 禁止比较。所以我假设我的 if 语句有问题。 #include
Task You are given a string . It consists of alphanumeric characters, spaces and symbols(+,-). Your
我刚刚开始用 C 语言编程,我必须创建一个程序来计算字符串有多少个元音。到目前为止我有这个: int a; int len = strlen(text)-1 for(a=0;a==len;++a){
尝试学习 Python 中的正则表达式以查找具有连续元音-辅音或辅音-元音组合的单词。我将如何在正则表达式中执行此操作?如果无法在 Regex 中完成,是否有一种在 Python 中执行此操作的有效方
我想输入 dagger-alif、dagger-waw 和 dagger-ya(也称为微型 alif、微型哇和微型 ya)作为 alif-wasla 使用 PC 阿拉伯语键盘。这些标记被使用帮助读者发
我正在尝试创建一个将文件上传到 FTP 服务器的批处理文件。除了一个特定文件夹的名称中包含突变/元音外,一切正常(无法更改。也就是文件夹名称中包含 ö。)。 我的问题是:有哪些选择可以实现这一目标?
我是一名优秀的程序员,十分优秀!