在python中如何用正则表达式提取字符串“AdvanTrol-Pro(PRO 153)"中的AdcanTrol-Pro和PRO 153两个子串
时间: 2023-12-03 13:47:47 浏览: 82
可以使用Python中的re模块来进行正则表达式的匹配和提取。具体代码如下:
```python
import re
s = 'AdvanTrol-Pro(PRO 153)'
pattern = r'(\w+-\w+).*\((\w+\s*\d+)\)'
match = re.match(pattern, s)
if match:
part1 = match.group(1)
part2 = match.group(2)
print(part1, part2)
```
输出结果为:
```
AdvanTrol-Pro PRO 153
```
其中,正则表达式`(\w+-\w+).*\((\w+\s*\d+)\)`中,`\w`表示匹配任意一个字母、数字或下划线,`+`表示匹配前面的字符至少一个,`-`表示匹配一个“-”符号,`.*`表示匹配任意数量的字符,`\(`和`\)`分别匹配左右括号,`(\w+\s*\d+)`表示匹配由若干个字母、空格、数字组成的字符串。在代码中,我们使用`match.group(1)`和`match.group(2)`来提取第一个和第二个括号中的子串。
相关问题
python正则表达式匹配字符串
好的,下面是一个简单的例子:
```python
import re
# 定义正则表达式
pattern = r'\d+'
# 定义待匹配的字符串
string = 'Hello 123 World 456'
# 使用 re 模块的 findall() 方法进行匹配
result = re.findall(pattern, string)
# 输出结果
print(result)
```
上述代码中,我们使用了 `\d+` 作为正则表达式,表示匹配一个或多个数字。然后,我们使用 `re.findall()` 方法在待匹配的字符串 `string` 中查找所有符合条件的子串,并将结果保存在 `result` 变量中。最后,我们输出 `result` 的值,可以看到输出结果为 `['123', '456']`,即匹配到了字符串中的两个数字子串。
用正则表达式提取字符串中的邮箱地址。str = "abcd z2013450@sdaeu.edu.cn 1234"
可以使用 Python 中的 re 模块来实现,具体代码如下:
```python
import re
str = "abcd z2013450@sdaeu.edu.cn 1234"
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
emails = re.findall(pattern, str)
print(emails)
```
输出结果为:
```
['z2013450@sdaeu.edu.cn']
```
解释一下代码:
1. 定义字符串 `str`,其中包含一个邮箱地址;
2. 定义正则表达式 `pattern`,用于匹配邮箱地址;
3. 使用 `re.findall()` 函数,查找字符串 `str` 中符合正则表达式 `pattern` 的所有子串,并返回结果;
4. 输出结果,即为匹配到的邮箱地址。
阅读全文