首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Regex匹配特定的字符串

Regex匹配特定的字符串
EN

Stack Overflow用户
提问于 2022-03-08 13:15:44
回答 2查看 422关注 0票数 -3

我想从多行数据中捕获所有字符串。假设这里是结果,这是我的代码,不起作用。

模式:^XYZ/0-9所有的\P,我对这个部分迷失了,谁能帮上忙?

代码语言:javascript
运行
复制
Result
XYZ/1
XYZ/1,2-5
XYZ/5,7,8-9
XYZ/2-4,6-8,9
XYZ/ALL
XYZ/P1
XYZ/P2,3
XYZ/P4,5-7
XYZ/P1-4,5-7,8-9

Changed to
XYZ/1
XYZ/1,2-5
XYZ/5,7,8-9
XYZ/2-4,6-8,9
XYZ/A12345 after the slash limited to 6 alphanumeric chars
XYZ/LH-1234567890 after the /LH- limited to 10 numeric chars 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-08 13:19:22

模式可以是:

代码语言:javascript
运行
复制
^XYZ\/(?:ALL|P?[0-9]+(?:-[0-9]+)?(?:,[0-9]+(?:-[0-9]+)?)*)$

部分匹配的模式:

  • 字符串的^开始
  • XYZ\/匹配XYX/ (您不必根据模式分隔符转义/ )
  • (?:外接于的捕获组
    • ALL匹配
    • |
    • P?匹配可选的P
    • [0-9]+(?:-[0-9]+)?将1+数字与可选的-和1+数字相匹配。
    • (?:非捕获组以匹配为一个整体
      • ,[0-9]+(?:-[0-9]+)?匹配,和1+数字以及可选的-和1+数字

代码语言:javascript
运行
复制
- `)*` Close the non capture group and optionally repeat it
  • )关闭外部非捕获组
  • 字符串的$末端

Regex演示

票数 1
EN

Stack Overflow用户

发布于 2022-03-08 13:25:42

您可以使用这个regex模式来匹配这些行。

代码语言:javascript
运行
复制
^XYZ\/(?:P|ALL|[0-9])[0-9,-]*$

使用全局g和多行m标志。

顺便说一下,[P|ALL]和单词"ALL“不匹配。

它只匹配一个字符,即PAL|

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71395702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档