javascript - 匹配正则表达式,处理数字和字母

标签 javascript regex

所以我正在使用javascript,我需要使用正则表达式来匹配一些数字和字母混合的数据,但由于我目前正在学习正则表达式,所以这个任务对我来说太复杂了,无法理解并使其像我一样工作想要它,有什么想法吗?

[ABC][122/29] [13:40] [RANDOM_TEXT] [PRT] [TPT] [RANDOM] [1113B86JD] RANDOM [ABC][122/29] [13:40] [RANDOM_TEXT] [PRT] [TPT] [RANDOM] [115M3X2G9] RANDOM [ABC][122/29] [13:40] [RANDOM_TEXT] [PRT] [TPT] [RANDOM] [1113P86JD] RANDOM [ABC][122/29] [13:40] [RANDOM_TEXT] [PRT] [TPT] [RANDOM] [314PTVPNL] RANDOM [ABC][122/29] [13:40] [RANDOM_TEXT] [PRT] [TPT] [RANDOM] 114PAVPNL RANDOM

90%的时间我想要的数据是在两个括号之间,长度大于5个字符,所以我找到了两个正则表达式,其余的数据仍然是数字和字母的混合,但没有括号。

  1. [(.*?)]

用于获取括号之间的数据

  • ^([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*$

  • 用于获取数字和字母的混合

    现在如何将两者结合起来,我尝试了很多次让它工作,但没有成功,有人可以帮助我吗?

    最佳答案

    您需要用特殊的“复合括号”将字母和数字正则表达式(即第二个没有 ^$ anchor 的正则表达式)括起来:

    (?:^|\[|\s)((?:[0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*)(?:$|\]|\s)
    

    左“复合括号”可以由文本开头 (^)、左方括号 (\[) 或空格 (\s)。因此,正则表达式开头的 (?:^|\[|\s)

    右“复合括号”可以用文本结尾 ($)、右方括号 (\]) 或空格 (\s)。因此,正则表达式末尾的 (?:$|\]|\s)

    您需要的字母和数字序列位于第一个捕获组中。

    演示:https://regex101.com/r/WLwu9p/1

    请注意,我从第二个表达式中将组 ((...)) 设置为非捕获 ((?:...)),因为在这个特定的情况下仅需要大小写分组。

    关于javascript - 匹配正则表达式,处理数字和字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42856495/

    相关文章:

    javascript - 在将 jshint 与 grunt 一起使用时,如何摆脱嵌套太深的 block ?

    正则表达式查找至少一个西里尔字符

    php - NodeJS 中的正则表达式模式问题

    java - 使用 Spring MongoDB 反向正则表达式选择

    JavaScript:SyntaxError:参数列表后缺少)

    javascript - Javascript 重定向在 smarty .tpl 文件中不起作用

    python - 正则表达式 python 条字符

    Javascript正则表达式从字符串中删除字符和数字

    javascript - 将不同内容的多个元素附加到另一个 div

    javascript - 无法在React中使用d3.js绘制条形图