python正则表达式提取字
时间: 2023-06-29 21:04:55 浏览: 47
串的示例:
假设有一个字符串 "Hello, my name is John, I am 28 years old."
我们想要提取其中的名字 "John" 和年龄 "28",可以使用正则表达式来实现。
具体步骤如下:
1. 导入 re 模块。
```
import re
```
2. 定义正则表达式。
```
pattern = r"my name is (\w+),.*(\d+) years old\."
```
其中,\w+ 匹配一个或多个单词字符(字母、数字、下划线),.* 匹配任意字符(除换行符外)零个或多个,\d+ 匹配一个或多个数字。
3. 使用 re 模块的 findall() 方法匹配字符串。
```
text = "Hello, my name is John, I am 28 years old."
result = re.findall(pattern, text)
print(result)
```
输出结果:
```
[('John', '28')]
```
其中,findall() 方法返回一个列表,列表中的每个元素是一个元组,每个元组对应一个匹配结果,元组中的元素对应正则表达式中每个括号的匹配结果。在本例中,匹配结果为 [("John", "28")]。
4. 提取匹配结果。
```
name, age = result[0]
print(name) # 输出 John
print(age) # 输出 28
```
这样就成功提取出了字符串中的名字和年龄。
相关问题
python 正则表达式提取数字
在Python中,使用正则表达式提取数字可以通过re模块实现。首先需要导入re模块。然后使用re.findall()方法可以返回所有匹配的数值,方法的第一个参数为正则表达式,第二个参数为待匹配字符串。正则表达式中可以使用\d表示匹配数字,使用+表示匹配多个数字,例如r"\d+"表示匹配多个数字,r"\d{3}"表示匹配三个数字。
举个例子,如果我们有一个字符串s="hello, 123, world, 456",想要提取其中的数字,可以使用以下代码:
import re
s = "hello, 123, world, 456"
nums = re.findall(r"\d+", s)
print(nums)
以上代码的输出结果为['123', '456'],即正则表达式成功匹配出了字符串s中的数字。
python正则表达式提取txt
Python正则表达式可以用来从文本中提取特定的信息。以下是一个简单的例子,展示如何使用Python正则表达式从txt文件中提取患者名字:
1. 首先,使用`import re`引入正则表达式模块。
2. 使用`with open('file.txt', 'r', encoding='UTF-8') as f:`打开txt文件。
3. 使用`text_new = f.read()`读取文件内容。
4. 使用`f.close()`关闭文件。
5. 使用`strset = re.findall('患者名: ([A-Z][a-z]* [A-Z][a-z]*)', text_new)`使用正则表达式提取患者名字。
6. 使用`name = strset[0]`将提取的患者名字存储在变量`name`中。
7. 使用`file_handle = open('file.txt', mode='w')`打开一个新的txt文件。
8. 使用`file_handle.write('var_FVCexY' + ' ' + var_FVCexY + '\n')`将提取的患者名字写入txt文件中。
需要注意的是,正则表达式的具体语法和使用方法可以根据不同的需求进行调整。如果你需要提取不同的信息,可以根据具体情况修改正则表达式的模式。