当前位置: 代码迷 >> python >> Notepad ++中使用的正则表达式搜索词不适用于python
  详细解决方案

Notepad ++中使用的正则表达式搜索词不适用于python

热度:117   发布时间:2023-06-13 14:50:51.0

我正在使用一个充满 twitter bios 的大 .json 文件,并想提取 screen_names。 为了防止搜索也返回 bio 部分中提到的潜在用户,重要的是只提取每行的第一个匹配项。

当我在 Notepad++ 中打开文件时,我可以使用以下正则表达式来做到这一点:

(^.*?)\K"screen_name": "(\w+)"

在 python 中使用相同的作为 re.findall 或 re.search 的一部分不会导致任何匹配。

我对 Python 和 regex 都是全新的,所以我很确定我不完全了解所有必要的编码。

提前谢谢了!

正如其他用户所指出的,Python 和记事本使用不同的搜索代码,因此为了实现我想要的结果,我部署了以下代码:

  import re
  regex=re.compile(r'"screen_name":\s*"(\w+)"')
  with open("followers.json", "r") as f:
     for line in f:
        output=regex.search(line)
        with open("followers.txt", "a") as outp:
            outp.write(output.group(1)+"\n")

这将分析您指定的 .json 文件,逐行读取它,并将每行的每个第一个匹配项保存在文件“followers.txt”中。