python 正则表达式 匹配这类字符串“static struct tc_action_ops *tc_lookup_action_n(char *kind)” 中‘(’的前一个空格与其之间的字符
时间: 2024-03-01 07:51:37 浏览: 11
可以使用以下正则表达式匹配:
```python
import re
s = "static struct tc_action_ops *tc_lookup_action_n(char *kind)"
pattern = r'(?<=\s)\S+(?=\()'
match = re.search(pattern, s)
if match:
print(match.group(0))
```
输出结果为:`*tc_lookup_action_n`。
解释一下正则表达式:
- `(?<=\s)`:表示匹配前面是空格的位置,但不包括空格本身。
- `\S+`:表示匹配一个或多个非空白字符。
- `(?=\()`:表示匹配后面是左括号的位置,但不包括左括号本身。
因此,使用正则表达式可以匹配到字符串中‘(’的前一个空格与其之间的字符。
相关问题
static int __init pl011_console_setup(struct console *co, char *options)
这是一个内核模块的初始化函数,用于设置一个名为 "pl011_console" 的控制台。参数 co 是一个指向 struct console 结构体的指针,它描述了控制台的属性和操作函数。参数 options 是一个字符串,包含了控制台的选项,但在本函数中没有被使用。
该函数的返回值为 0 表示初始化成功,否则表示失败。
static ssize_t my_attr_show(struct device *dev, struct device_attribute *attr, char *buf) 怎么获取私有数据
在Linux设备驱动中,可以通过设备结构体的指针 dev 来获取设备的私有数据。设备结构体中通常会包含一个指向私有数据的指针,例如:
```
struct my_device {
struct device dev;
void *priv_data;
};
```
在my_attr_show函数中,可以通过dev指针获取到my_device结构体的指针,进而获取到priv_data指针:
```
static ssize_t my_attr_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct my_device *my_dev = container_of(dev, struct my_device, dev);
void *priv_data = my_dev->priv_data;
// do something with priv_data
return count;
}
```
这里使用了Linux内核提供的container_of宏,将dev指针转换为my_device结构体的指针。然后就可以通过my_device结构体的指针获取到priv_data指针,进行后续的操作。