鬼少 发表于 2024-12-4 23:31:58

python 美元符号的疑问


import re
print(re.findall(r'$','haha\n\n'))

['', '']

print(re.findall(r'$','haha\n\nha'))

['']

试问, 输出结果为什么是这样的?可以详细解释下么?

FishC 发表于 2024-12-4 23:38:32

在 Python 的正则表达式中,美元符号 `$` 是一个特殊字符,用于匹配字符串的结尾或行的结尾。让我们逐行分析你的代码:

import re
print(re.findall(r'$','haha

'))

在这个例子中,`re.findall(r'$', 'haha

')` 会在字符串的每一行的结尾进行匹配。由于字符串 `'haha

'` 包含三行(分别是 `'haha'`、空行和空行),所以 `$` 会匹配每一行的结尾。结果是一个包含三个空字符串的列表:`['', '', '']`。

print(re.findall(r'$','haha

ha'))

在这个例子中,`re.findall(r'$', 'haha

ha')` 也是在每一行的结尾进行匹配。字符串 `'haha

ha'` 包含三行(分别是 `'haha'`、空行和 `'ha'`),所以 `$` 会匹配每一行的结尾。结果是一个包含三个空字符串的列表:`['', '', '']`。

总结来说,`$` 在正则表达式中用于匹配行的结尾,因此在每一行的结尾都会匹配到一个空字符串。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

很cool的阳 发表于 2024-12-5 09:53:32

本帖最后由 很cool的阳 于 2024-12-5 09:54 编辑

import re

# 第一个正则表达式和字符串
result1 = re.findall(r',', 'haha\n\n,')
print(result1)

# 第二个正则表达式和字符串
result2 = re.findall(r',', 'haha\n\nha')
print(result2)

第一个 re.findall(r',', 'haha\n\n,'):

正则表达式 r',' 用于匹配逗号 ,。
字符串 'haha\n\n,' 中包含一个逗号 ,。
因此,re.findall 返回 [''] 是不正确的。正确的输出应该是 ['']。

第二个 re.findall(r',', 'haha\n\nha'):

正则表达式 r',' 用于匹配逗号 ,。
字符串 'haha\n\nha' 中没有逗号 ,。
因此,re.findall 返回 [],表示没有找到匹配的逗号。
页: [1]
查看完整版本: python 美元符号的疑问