正则表达式如果包含特定单词则跳过字符串的一部分

桑迪普

我需要从命名捕获组中的字符串中检索uri

例子uri是

/cu/rest/en_US/reports/execute/310F02501000016D001218A1AZ6B2D16
/cu/rest/en_US/reports/execute/newResource/
/cu/rest/en_US/link/xml

如果字符串中包含“ execute”,则正则表达式应跳过“ execute”之后出现的字符,否则应匹配给定字符串中的整个uri

我当前使用的正则表达式是

(?P<value>\S+)

即使其中包含“执行”,这也会将整个uri匹配为“值”。

是否可以基于哪个“值”设置为包含整个uri或跳过其中一部分的条件正则表达式?

对于上面的3个示例,“值”应为

  1. / cu / rest / zh_CN / reports / execute
  2. / cu / rest / zh_CN / reports / execute
  3. / cu / rest / en_US / link / xml
维克多·史翠比维

您可以使用

^(?P<value>\S*?(?:/execute(?![^/])|$))

或者,使用经过磨炼的贪婪令牌:

^(?P<value>(?:(?!/execute/)\S)*)

请参阅regex演示#1regex演示#2

细节

  • ^ -字符串开始
  • (?P<value>\S*?(?:/execute(?![^/])|$)) -组“值”:
    • \S*? -0个或多个非空格字符,尽可能少
    • (?:/execute(?![^/])|$) -非捕获组匹配
      • /execute(?![^/])-/execute子字符串后跟/或字符串结尾(请注意(?![^/])= (?=/|$),但效率更高,因为它不包含任何替换,只需要执行1步)
      • | - 要么
      • $ -字符串结尾。

(?:(?!/execute/)\S)*刚刚匹配任何非空白字符(\S),0个或多个(*),不启动/execute/字符序列。请注意,以防万一,您应在之后检查所有斜线或字符串结尾/execute,请使用/execute(?![^/])代替/execute/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

Java正则表达式仅替换字符串(url)的一部分

来自分类Dev

Scala:使用正则表达式提取一部分字符串

来自分类Dev

正则表达式包括字符串的一部分,但不包括strig的另一部分

来自分类Dev

静态字符串将成为正则表达式模式的一部分

来自分类Dev

在python中通过正则表达式提取字符串的一部分

来自分类Dev

使用Strip函数删除通过正则表达式获得的字符串的一部分

来自分类Dev

删除字符串的一部分-正则表达式

来自分类Dev

使用Python中的正则表达式获取字符串的一部分

来自分类Dev

如何使用正则表达式在Java中处理字符串的一部分

来自分类Dev

使用R中的正则表达式捕获字符串的一部分

来自分类Dev

Sed正则表达式,在Mac终端中提取字符串的一部分

来自分类Dev

Javascript正则表达式将字符串的一部分与列表中的项目匹配

来自分类Dev

使用正则表达式排除字符串的一部分

来自分类Dev

正则表达式替换字符串逗号的一部分

来自分类Dev

使用正则表达式提取字符串的一部分

来自分类Dev

正则表达式匹配一部分或全部字符串

来自分类Dev

正则表达式仅返回字符串的一部分

来自分类Dev

正则表达式删除字符串的一部分,然后替换另一部分

来自分类Dev

跳过字符串的一部分,并用正则表达式替换匹配项

来自分类Dev

正则表达式以检测单词是否是字符串的一部分,而下一个单词不大写

来自分类Dev

PHP正则表达式多行字符串的一部分

来自分类Dev

正则表达式在一个单词后得到字符串的一部分

来自分类Dev

正则表达式匹配,其中字符串的一部分不包含字符

来自分类Dev

正则表达式匹配字符串的最后一部分

来自分类Dev

正则表达式不匹配字符串的一部分

来自分类Dev

正则表达式匹配字符串,除非特定字符串的一部分

来自分类Dev

正则表达式保留字符串的一部分

来自分类Dev

使用正则表达式屏蔽字符串的一部分

来自分类Dev

如何始终使用正则表达式检查单词是否是从 www 开始的字符串的一部分?

Related 相关文章

  1. 1

    Java正则表达式仅替换字符串(url)的一部分

  2. 2

    Scala:使用正则表达式提取一部分字符串

  3. 3

    正则表达式包括字符串的一部分,但不包括strig的另一部分

  4. 4

    静态字符串将成为正则表达式模式的一部分

  5. 5

    在python中通过正则表达式提取字符串的一部分

  6. 6

    使用Strip函数删除通过正则表达式获得的字符串的一部分

  7. 7

    删除字符串的一部分-正则表达式

  8. 8

    使用Python中的正则表达式获取字符串的一部分

  9. 9

    如何使用正则表达式在Java中处理字符串的一部分

  10. 10

    使用R中的正则表达式捕获字符串的一部分

  11. 11

    Sed正则表达式,在Mac终端中提取字符串的一部分

  12. 12

    Javascript正则表达式将字符串的一部分与列表中的项目匹配

  13. 13

    使用正则表达式排除字符串的一部分

  14. 14

    正则表达式替换字符串逗号的一部分

  15. 15

    使用正则表达式提取字符串的一部分

  16. 16

    正则表达式匹配一部分或全部字符串

  17. 17

    正则表达式仅返回字符串的一部分

  18. 18

    正则表达式删除字符串的一部分,然后替换另一部分

  19. 19

    跳过字符串的一部分,并用正则表达式替换匹配项

  20. 20

    正则表达式以检测单词是否是字符串的一部分,而下一个单词不大写

  21. 21

    PHP正则表达式多行字符串的一部分

  22. 22

    正则表达式在一个单词后得到字符串的一部分

  23. 23

    正则表达式匹配,其中字符串的一部分不包含字符

  24. 24

    正则表达式匹配字符串的最后一部分

  25. 25

    正则表达式不匹配字符串的一部分

  26. 26

    正则表达式匹配字符串,除非特定字符串的一部分

  27. 27

    正则表达式保留字符串的一部分

  28. 28

    使用正则表达式屏蔽字符串的一部分

  29. 29

    如何始终使用正则表达式检查单词是否是从 www 开始的字符串的一部分?

热门标签

归档