正则表达式,从键盘输入两个字符串。第一个字符串命名为m_str,第二个字符串命名为f_str。在f_str的中间(非首字符、非末字符)包含一个‘*’,‘*’代表一个或多个字符。 现请编写程序,查找m_str中是否包含f_str,若包含则输出找到的所有子串。用python
时间: 2024-05-11 13:15:06 浏览: 125
代码实现如下:
```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
```
相关问题
给出一个字符串(包含一些空格),请找出字符串中所有的单词。 从键盘中输入两个字符串,在第一个字符串中删除第二个字符串的字符。 使用正则表达式匹配日期格式 如2022年11月30日
1. 找出字符串中所有的单词:
可以使用split()函数将字符串按照空格分割成一个单词列表,示例代码如下:
```
string = "This is a sample string"
words = string.split()
print(words)
```
输出结果:
```
['This', 'is', 'a', 'sample', 'string']
```
2. 删除第二个字符串中的字符:
可以使用replace()函数将第二个字符串中的字符替换为空字符串,示例代码如下:
```
str1 = input("Enter the first string: ")
str2 = input("Enter the second string: ")
new_str = str1
for char in str2:
new_str = new_str.replace(char, "")
print(new_str)
```
3. 正则表达式匹配日期格式:
可以使用re模块中的正则表达式函数实现日期格式的匹配,示例代码如下:
```
import re
string = "Today is 2022年11月30日"
pattern = "\d{4}年\d{1,2}月\d{1,2}日"
match = re.search(pattern, string)
if match:
print(match.group())
else:
print("No match found.")
```
输出结果:
```
2022年11月30日
```
用正则表达式按;,. 分割字符串
可以使用正则表达式中的`|`来匹配多个分隔符,例如下面的代码可以按`;`和`,`分割字符串:
```java
String str = "hello;world,java";
String[] arr = str.split("[;,]");
```
输出结果为:
```
hello
world
java
```
其中`[;,]`表示匹配`;`或`,`。如果需要匹配多个字符,请用`|`连接。
另外需要注意的是,正则表达式中的特殊字符需要转义,例如`.`表示任意字符,在正则表达式中需要写成`\.`。因此,如果需要按`.`分割字符串,正则表达式应该写成`\\.`。
阅读全文