正则表达式取出字符串中的数字
时间: 2024-02-03 12:08:43 浏览: 87
可以使用正则表达式 `\d+` 来匹配字符串中的数字,其中 `\d` 表示匹配任意一个数字,`+` 表示匹配一个或多个连续的数字。下面是一个 Python 示例代码:
```python
import re
text = "这是一个包含123数字的字符串456"
numbers = re.findall(r'\d+', text)
print(numbers) # 输出 ['123', '456']
```
这个代码使用 `re` 模块的 `findall` 方法来查找字符串中所有匹配正则表达式的子串,返回一个由所有子串组成的列表。
相关问题
用正则表达式从字符串中取出指定格式的变量,比如从admin/company/edit/:name/:id中匹配name和id
可以使用如下正则表达式匹配:
```
/\/\w+\/:\w+/g
```
解释一下这个正则表达式:
1. `/\/` 表示分隔符 `/`,需要转义才能匹配到。
2. `\w+` 表示匹配一个或多个字母数字,包括下划线。
3. `\/:` 表示匹配分隔符 `/` 和冒号 `:`。
4. `\w+` 表示变量名,同第二步。
5. `/g` 表示全局匹配。
所以,对于字符串 "admin/company/edit/:name/:id",使用以上正则表达式匹配会返回一个数组,包含两个匹配结果:":name" 和 ":id"。
代码示例:
```
const str = 'admin/company/edit/:name/:id';
const regex = /\/\w+\/:\w+/g;
const matches = str.match(regex);
console.log(matches); // [':name', ':id']
```
希望能帮到您!
linux c语言使用正则表达式从字符串“here:GET /api/shortcut?enable=1 HTTP/1.1”取出“enable=”后面的数字
可以使用regex库来实现正则表达式的匹配和提取。以下是一个示例代码:
```c
#include <stdio.h>
#include <regex.h>
int main(void) {
char *str = "here:GET /api/shortcut?enable=1 HTTP/1.1";
regex_t regex;
regmatch_t match[2];
// 编译正则表达式
int ret = regcomp(®ex, "enable=([0-9]+)", REG_EXTENDED);
if (ret != 0) {
printf("regcomp error\n");
return 1;
}
// 匹配字符串
ret = regexec(®ex, str, 2, match, 0);
if (ret == 0) {
// 提取数字
char enable[match[1].rm_eo - match[1].rm_so + 1];
snprintf(enable, sizeof(enable), "%.*s", match[1].rm_eo - match[1].rm_so, str + match[1].rm_so);
printf("enable=%s\n", enable);
} else if (ret == REG_NOMATCH) {
printf("no match\n");
} else {
printf("regexec error\n");
return 1;
}
// 释放正则表达式
regfree(®ex);
return 0;
}
```
运行结果为:
```
enable=1
```
正则表达式"enable=([0-9]+)"中,"[0-9]+"表示匹配一个或多个数字,"()"表示将这个部分作为一个子匹配,方便后面提取数字。执行regexec函数后,如果匹配成功,可以根据match数组中的rm_so和rm_eo字段来提取子匹配的内容。
阅读全文