gpt4 book ai didi

javascript - 正则表达式匹配相当复杂的字符串

转载 作者:行者123 更新时间:2023-12-03 03:55:41 25 4
gpt4 key购买 nike

任何正则表达式专家都可能会在此数据上找到一种模式,我正在寻找一种完全匹配的模式,精确到空格、逗号和破折号。这是我需要匹配的示例数据:

<小时/>

单词单词,字母数字-PRT-单词-编号

单词单词、字母数字-PRT-编号

<小时/>

-单词:任意大小的单词

-字母数字:3 个字母和最多 2 个数字,例如 XXX# 或 XXX##

-数字:最多 3 位数字,因此 # 或 ## 或 ###

-PRT:是这里唯一的静态值

注意:除了空格、逗号和破折号之外,没有其他标点符号。

<小时/>

到目前为止,有一些接近它的东西,但相当笨重,并且它没有涵盖所有基础,我在这里构建了它:http://buildregex.com/使用他们的逻辑,它有点有效:

/(?:[^_\ ]+)(?:\ )(?:[^_\ ]+), (?:[^_\ ]+)-PRT-(?:[^_\ ]*)/gi

如果有人可以帮助完善这一点,我们将受到欢迎

https://regex101.com/r/8cc52u/2

非常感谢

最佳答案

这是一种方法:

/^[a-z]+\s[a-z]+,\s[a-z]{3}\d{1,2}-prt-([a-z]+-){0,1}\d{1,3}$/gi
  • ^:行首
  • [a-z]+:一个或多个字母
  • \s:任意空格字符
  • [a-z]+:一个或多个字母
  • :,
  • \s:任意空格字符
  • [a-z]{3}:三个字母
  • \d{1,2}:一位或两位数字
  • -prt-:-prt-
  • ([a-z]+-){0,1}:一个或多个字母后跟 -、零次或一次
  • \d{1,3}:一位、两位或三位数字
  • $:行尾

示例:https://regex101.com/r/BhS8kM/5

或者,如 suggested by revo :

/^[a-z]+ [a-z]+, [a-z]{3}\d{1,2}-prt-([a-z]+-)?\d{1,3}$/gi

示例:https://regex101.com/r/BhS8kM/7

关于javascript - 正则表达式匹配相当复杂的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44963027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com