r'for\s*\(\s*(\w+)\s+(\w+)\s*=\s*0\s*;\s*(\w+)\s*<\s*(\w+)\.size\s*\(\s*\)\s*;\s*(\w+)\s*\+\+\s*\)' 如何修改能匹配类似a.b.size
时间: 2023-08-24 08:09:06 浏览: 43
如果要匹配类似`a.b.size`的字符串,可以将原来的`\w+`替换成`\w+(\.\w+)*`,表示匹配一个或多个由点号连接的字母、数字或下划线。修改后的正则表达式为:`r'for\s*\(\s*(\w+)\s+(\w+)\s*=\s*0\s*;\s*(\w+)\s*<\s*(\w+)\.size\s*\(\s*\)\s*;\s*(\w+)\s*\+\+\s*\)'`变成了`r'for\s*\(\s*(\w+(\.\w+)*)\s+(\w+)\s*=\s*0\s*;\s*(\w+(\.\w+)*)\s*<\s*(\w+(\.\w+)*)\.size\s*\(\s*\)\s*;\s*(\w+(\.\w+)*)\s*\+\+\s*\)'`,这样就可以匹配类似`a.b.size`的字符串了。
相关问题
r'for\s*\(\s*(\w+(\.\w+)*)\s+(\w+)\s*=\s*0\s*;\s*(\w+(\.\w+)*)\s*<\s*(\w+(\.\w+)*)\.size\s*\(\s*\)\s*;\s*(\w+(\.\w+)*)\s*\+\+\s*\)' 该如何修改使还能匹配unsigned char
要想匹配unsigned char,可以将正则表达式中的 `\w` 替换成 `[a-zA-Z_]\w*`,即匹配一个字母或下划线后面跟任意个字母、数字或下划线。修改后的正则表达式为:
```
for\s*\(\s*([a-zA-Z_]\w*(\.[a-zA-Z_]\w*)*)\s+([a-zA-Z_]\w*)\s*=\s*0\s*;\s*([a-zA-Z_]\w*(\.[a-zA-Z_]\w*)*)\s*<\s*([a-zA-Z_]\w*(\.[a-zA-Z_]\w*)*)\.size\s*\(\s*\)\s*;\s*([a-zA-Z_]\w*(\.[a-zA-Z_]\w*)*)\s*\+\+\s*\)
```
这样就可以匹配unsigned char了。
reg = "\\#\\s*\\{\\s*\\w+(\\s*\\.\\s*\\w+)*\\s*\\}"
这是一个匹配类似于# {word.word}这样的字符串的正则表达式。其中,\#匹配#字符,\s*匹配0个或多个空格,\{和\}匹配左右花括号,\w+匹配一个或多个字母数字字符,(\s*.\s*\w+)*匹配0个或多个由空格、点和字母数字字符组成的字符串。整个正则表达式的作用是匹配形如# {word.word}的字符串。
```python
import re
# 定义正则表达式
reg = r"\#\s*\{\s*\w+(\s*\.\s*\w+)*\s*\}"
# 测试字符串
test_str = "This is a # {test.string} for testing # {regular.expression} in Python."
# 匹配字符串
matches = re.findall(reg, test_str)
# 输出匹配结果
for match in matches:
print(match)
```
输出结果为:
```
# {test.string}
# {regular.expression}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)