findall统计字符串中连续的字母并输出
时间: 2024-03-04 11:48:01 浏览: 14
你可以使用正则表达式和 `findall` 函数来统计字符串中连续的字母并输出。这里给出一个示例代码:
```python
import re
s = "aaabbbccdeeeefffg"
groups = re.findall(r'([a-zA-Z])\1*', s)
for g in groups:
print(g[0], len(g))
```
以上代码中,我们使用了正则表达式 `r'([a-zA-Z])\1*'` 来匹配字符串中连续的字母,并将它们分组。`([a-zA-Z])` 表示一个字母,并将它作为一个组,`\1*` 表示匹配与第一个组相同的字母 0 次或多次。
然后,我们遍历每个分组,输出字母和它的出现次数。具体地,`g[0]` 表示分组中的字母,`len(g)` 表示分组中字母的出现次数。对于示例字符串 `"aaabbbccdeeeefffg"`,以上代码将输出:
```
a 3
b 3
c 2
d 1
e 4
f 3
g 1
```
注意,以上代码只能统计连续的字母,如果要统计所有字母的出现次数,可以使用 Python 内置的 `collections` 模块中的 `Counter` 类。
相关问题
输入一个字符串,统计字符串中非英文字母的字符个数并输出
可以使用Python进行实现,代码如下:
```python
import re
str = input("请输入字符串:")
result = re.findall('[^a-zA-Z]', str) # 找出非英文字母的字符
count = len(result) # 统计个数
print("非英文字母的字符个数为:", count)
```
输入一个字符串后,程序会通过正则表达式找出非英文字母的字符,并统计其个数输出。
统计字符串中非英文字母个数
以下是Python代码,用于统计字符串中非英文字母的个数:
```python
import re
def count_non_english_chars(s):
non_eng_chars = re.compile(r'[^a-zA-Z]')
return len(non_eng_chars.findall(s))
# 示例
s = "Hello, 你好,こんにちは!"
print(count_non_english_chars(s)) # 输出:4
```
解释:
- `re.compile(r'[^a-zA-Z]')`:使用正则表达式编译出一个模式,表示匹配非英文字母的字符。
- `non_eng_chars.findall(s)`:在字符串`s`中查找所有符合模式的字符,并返回一个列表。
- `len(non_eng_chars.findall(s))`:统计符合模式的字符的个数。