)(河南大学往年上机复试真题)将一个含字符型的数据,整型数据的字符串拆分成两个子串,一个只保留字符类型,一个只保留整数类型,例如ks47ks18m9ws4拆分成ksksmws和47189,要求:不破坏原来的字符串。
时间: 2024-10-23 12:06:05 浏览: 16
C语言求两个字符串的最长公共子串
5星 · 资源好评率100%
这个问题可以使用Python的正则表达式库`re`来解决。正则表达式可以匹配字符串中的特定模式。以下是一个解决方案:
```python
import re
def split_string(input_str):
# 使用正则表达式匹配字符和数字
match_char = re.findall(r'\D+', input_str) # 匹配非数字的部分
match_int = re.findall(r'\d+', input_str) # 匹配数字部分
# 将匹配的结果连接成新的字符串
char_substring = ''.join(match_char)
int_substring = ''.join(map(str, match_int)) # map将列表中的int转为str以便连接
return char_substring, int_substring
# 示例输入
original_str = "ks47ks18m9ws4"
char, num = split_string(original_str)
print(f"字符部分: {char}, 整数部分: {num}")
# 输出: "ksksmws", "47189"
阅读全文