【问题标题】:notepad++ regex how to extract userId from this listnotepad++ 正则表达式如何从此列表中提取 userId
【发布时间】:2020-07-03 22:06:01
【问题描述】:

我在下面有这个列表:

originalscrape,scrapeDate,userId,username,full_name,is_private,follower_count,following_count,media_count,biography,hasProfilePic,external_url,email,contact_phone_number,address_street,isbusiness,Engagement %,MostRecentPostDate,AvgLikes,AvgComments,category,businessJoinDate,businessCountry,businessAds,countryCode,cityName,isverified
,07/03/2020 05:54 AM,="189389157",stronger_together_forever,stronger_together_forever ????????☀️,False,0,0,0,,False,,,,,No,0,Has no posts.,0,0,,,,,,,No
,07/03/2020 05:54 AM,="51807820",aaronistattoo,Aaron Is.,False,0,0,0,,False,,,,,No,0,Has no posts.,0,0,,,,,,,No
,07/03/2020 05:54 AM,="194962598",djcoley727,djcoley727,False,0,0,0,,False,,,,,No,0,Has no posts.,0,0,,,,,,,No
,07/03/2020 05:54 AM,="4182106610",cesararce1985,Cesar Arce,False,0,0,0,,False,,,,,No,0,Has no posts.,0,0,,,,,,,No
,07/03/2020 05:54 AM,="8957742561",minkwhiz,????????????????????????????????,False,0,0,0,,False,,,,,No,0,Has no posts.,0,0,,,,,,,No

我只想获取如下的用户 ID:

189389157
51807820
194962598
4182106610
8957742561

我用过^(?:[^,\r\n]*,){3}([^,\r\n]+).*,但它让我得到“用户名”,我想要的是用户ID。

我希望有人可以帮助我找到正确的正则表达式来仅提取用户 ID。

谢谢

【问题讨论】:

标签: regex notepad++


【解决方案1】:

利用AM/PM 格式中的时间存在的优势每个ID 以及ID 被" 字符包围:

(?:AM|PM),=\"(\d+)\"

Regex101查看演示。

【讨论】:

    【解决方案2】:

    您可以使用匹配 =" 并重复该组 2 次而不是 3 次。然后捕获 1+ 个数字。

    注意使用* 重复字符类[^,\r\n] 0 次或多次。

    如果您只想要数字,您可以使用$1 替换为第 1 组

    ^(?:[^,\r\n]*,){2}="(\d+)".*
    
    • ^ 字符串开始
    • (?:[^,\r\n]*,){2} 重复 2 次匹配除逗号或换行符以外的任何字符 0 次或多次,然后匹配 ,
    • =" 字面上匹配
    • (\d+)捕获组1,匹配1+位数
    • ".* 匹配 " 并匹配该行的其余部分

    Regex demo


    如果你只想要匹配,你可以使用\K来重置匹配缓冲区,然后匹配数字并在右边声明一个双引号。

    ^(?:[^,\r\n]*,){2}="\K\d+(?=")
    

    Regex demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 2017-07-06
      • 2011-04-21
      相关资源
      最近更新 更多