从键盘输入两个字符串。第一个字符串命名为m_str,第二个字符串命名为f_str。在f_str的中间(非首字符、非末字符)包含一个‘*’,该字符常作为通配符,即代表一个或多个字符。现请编写程序,查找m_str中是否包含f_str,若包含则输出找到的所有子串。
时间: 2023-05-29 21:07:37 浏览: 126
以下是Python的代码实现:
```python
m_str = input("请输入第一个字符串:")
f_str = input("请输入第二个字符串:")
# 查找f_str在m_str中的位置
index = m_str.find(f_str.replace('*', ''))
# 如果找到了,输出所有包含f_str的子串
if index >= 0:
i = index
while i < len(m_str):
j = m_str.find(f_str[1], i+1)
if j < 0:
break
sub_str = m_str[i:j+1]
if sub_str.find(f_str.replace('*', '')) >= 0:
print(sub_str)
i = j+1
```
输入示例:
```
请输入第一个字符串:hello world
请输入第二个字符串:l*o
```
输出示例:
```
llo wo
ld
```
相关问题
正则表达式,从键盘输入两个字符串。第一个字符串命名为m_str,第二个字符串命名为f_str。在f_str的中间(非首字符、非末字符)包含一个‘*’,‘*’代表一个或多个字符。 现请编写程序,查找m_str中是否包含f_str,若包含则输出找到的所有子串。用python
代码实现如下:
```python
import re
m_str = input('请输入第一个字符串m_str:')
f_str = input('请输入第二个字符串f_str:')
# 将f_str中的*替换为正则表达式中的通配符.+
pattern = f_str.replace('*', '.+')
# 在m_str中查找符合正则表达式的子串
result = re.findall(pattern, m_str)
if len(result) > 0:
print('在m_str中找到如下子串:')
for s in result:
print(s)
else:
print('在m_str中未找到任何子串。')
```
使用示例:
```
请输入第一个字符串m_str:abc123abcdef
请输入第二个字符串f_str:a*cde
在m_str中找到如下子串:
abc123abcdef
abcde
```
正则表达式,从键盘输入两个字符串。第一个字符串命名为m_str,第二个字符串命名为f_str。在f_str的中间(非首字符、非末字符)包含一个‘*’,(*代表一个或多个字符)。 现请编写程序,查找m_str中是否包含f_str,若包含则输出找到的所有子串。用python
import re
m_str = input("请输入第一个字符串m_str:")
f_str = input("请输入第二个字符串f_str:")
pattern = f_str.replace("*", ".+") # 将f_str中的*转化为.+
match_obj = re.findall(pattern, m_str) # 找到m_str中符合pattern模式的所有子串
if match_obj:
print("找到的所有子串为:", match_obj)
else:
print("m_str中不包含f_str指定的子串。")
阅读全文