R 筛选不需要的结果的base64正则表达式

R 筛选不需要的结果的base64正则表达式,r,regex,base64,R,Regex,Base64,从正则表达式中筛选不需要的匹配项 我在R中提取base64编码字符串,并使用以下正则表达式: \b[A-Za-z0-9+/]\b 99%的时间都可以,但当我遇到这样(或类似)的情况时: 在我把单词折叠起来的地方,我会得到匹配。我的数据乱七八糟,就像这样 有没有办法在修改我原来的正则表达式时过滤掉它们 这个问题可能很明显,但我对正则表达式比较陌生 您可以考虑在表达式上设计几个边界 你可能拥有和发生的1%概率 可以帮助您设计这样的表达式,只需添加一些边界,如: 应该使用(?=)和一些出现次数{n,

从正则表达式中筛选不需要的匹配项

我在R中提取base64编码字符串,并使用以下正则表达式:

\b[A-Za-z0-9+/]\b

99%的时间都可以,但当我遇到这样(或类似)的情况时:

在我把单词折叠起来的地方,我会得到匹配。我的数据乱七八糟,就像这样

有没有办法在修改我原来的正则表达式时过滤掉它们

这个问题可能很明显,但我对正则表达式比较陌生

您可以考虑在表达式上设计几个边界 你可能拥有和发生的1%概率

可以帮助您设计这样的表达式,只需添加一些边界,如:

  • 应该使用
    (?=)
    和一些出现次数
    {n,}
    (虽然这不是最佳边界,但它可能有助于您设计一个,我不太确定base64)

  • 您还可以在
    \b()\b
    周围添加一个长度边界,使其与可能具有低百分比概率的示例字符串不匹配

您可以看到字符串的概率如下所示:

 itisyourpersonalenergyspecialistitisyourpersonalenergyspecialist
作为base64字符串几乎是
0
。即使您有一些与base64格式稍接近的随机字符串,可能与我突出显示的字符串类似,但一个好的表达式仍然可以简单地排除它

如果您愿意,您可以添加许多类型的边界,以达到几乎100%的精度。这不是一个好的表达方式,但它可能会让您大致了解:

(?=.+[A-Z]{2,})(?=.+[a-z]{2,})(?=.+[0-9]{2,})([A-Za-z0-9+\/]{100,}) 
此表达式可能只是表示字符串输入:

  • 必须至少有两个相邻的[a-Z]字符
  • 必须至少包含两个相邻的[a-z]字符
  • 必须至少包含两个相邻的[0-9]字符(我非常确定这一个)
  • 至少应有100个base64字符长度

你可以考虑我添加的这些量词,如<代码> { 2,}和<代码> { 100,},只是简单地显示你可以排除在你的问题中所举例的字符串。您很可能会为这个匹配设计出无数更好的表达式,希望达到100%的准确率


附加演示: 可能会帮助您了解量词的工作原理:

 ([A-Za-z0-9+\/]{100,})

总的来说,你当然可以这样做

您可以考虑在表达式上设计几个边界 你可能拥有和发生的1%概率

可以帮助您设计这样的表达式,只需添加一些边界,如:

  • 应该使用
    (?=)
    和一些出现次数
    {n,}
    (虽然这不是最佳边界,但它可能有助于您设计一个,我不太确定base64)

  • 您还可以在
    \b()\b
    周围添加一个长度边界,使其与可能具有低百分比概率的示例字符串不匹配

您可以看到字符串的概率如下所示:

 itisyourpersonalenergyspecialistitisyourpersonalenergyspecialist
作为base64字符串几乎是
0
。即使您有一些与base64格式稍接近的随机字符串,可能与我突出显示的字符串类似,但一个好的表达式仍然可以简单地排除它

如果您愿意,您可以添加许多类型的边界,以达到几乎100%的精度。这不是一个好的表达方式,但它可能会让您大致了解:

(?=.+[A-Z]{2,})(?=.+[a-z]{2,})(?=.+[0-9]{2,})([A-Za-z0-9+\/]{100,}) 
此表达式可能只是表示字符串输入:

  • 必须至少有两个相邻的[a-Z]字符
  • 必须至少包含两个相邻的[a-z]字符
  • 必须至少包含两个相邻的[0-9]字符(我非常确定这一个)
  • 至少应有100个base64字符长度

你可以考虑我添加的这些量词,如<代码> { 2,}和<代码> { 100,},只是简单地显示你可以排除在你的问题中所举例的字符串。您很可能会为这个匹配设计出无数更好的表达式,希望达到100%的准确率


附加演示: 可能会帮助您了解量词的工作原理:

 ([A-Za-z0-9+\/]{100,})

总的来说,你当然可以这样做


您希望得到什么作为您的输出?您将始终存在误报,正常字可以是有效的base64字符串。如果您想将正则表达式限制为某些特定的base64字符串子集,请指出这些要求。我正在试图弄清楚这是做什么的
\b[A-Za-z0-9+/]\b
。它是一个由单词边界结构包围的单字符类吗?您希望得到什么作为输出?您将始终存在误报,普通单词可以是有效的base64字符串。如果您想将正则表达式限制为某些特定的base64字符串子集,请指出这些要求。我正在试图弄清楚这是做什么的
\b[A-Za-z0-9+/]\b
。它是一个由单词边界结构包围的单个字符类吗?