正则表达式,仅当存在特定单词时才返回组

普拉卡什

我目前有一个正则表达式,适用于某些类型的输入。

Reg Ex: (.*)\s*PER\s*([^\s]+).*

采样输入1:1.0 PER采样死区1

输出:

匹配组1:1.0

匹配组2:样本

样例输入2:1.0 PER Request DEAD VOLUME 1

输出:

匹配组1:1.0

匹配组2:请求

现在,我需要修改正则表达式,使其也适用于如下所示的输入。

输入1:10.0 PER空孔在列DEAD VOLUME 10

预期产量

匹配组1:10.0

匹配组2:空井

匹配组3:

输入2:8.0 PER空井入行死体积8

预期产量

匹配组1:8.0

匹配组2:空井

匹配组3:

我找到了一个正则表达式,可以成功处理第二种类型的输入。

正则表达式: (.*)\s*PER\s*(.*)\s*In\s*(.*)\s*DEAD\s*.*

有没有办法我可以使这两种输入类型都可以使用的正则表达式

更新:

嗨,您只需要更多帮助...我忘了再提一个条件...此reg也需要为以下输入工作。

  1. 1.0 PER样本
  2. 1.0 PER要求
  3. 10.0 PER空井数

表示DEAD VOLUME部分是可选的。

这可能吗???

威克多·斯特里比尤

您可以使用带有点延迟匹配的可选组:

^([\d.]+)\s+PER\s+(.*?)(?:\sIn\s*(.+?))?(?:\s*DEAD.*)?$

观看此正则表达式演示

火柴:

1.0 PER Sample DEAD VOLUME 1
   1.0
   Sample

1.0 PER Request DEAD VOLUME 1
   1.0
   Request

10.0 PER Empty Well In Column DEAD VOLUME 10
   10.0
   Empty Well
   Column

8.0 PER Empty Well In Row DEAD VOLUME 8
   8.0
   Empty Well
   Row

说明

  • ^ -字符串开始
  • ([\d.]+) -组1捕获任何1个以上的数字或点
  • \s+ -1+空格
  • PER -文字 PER
  • \s+ -1+空格
  • (.*?) -组2捕获除换行符以外的任何0+字符,直到第一个字符为止...
  • (?:\sIn\s*(.+?))? -1个或0个序列:
    • \sIn-空格后跟In文字
    • \s* -零个或多个空格
    • (.+?) -第3组捕获一个或多个除换行符以外的其他字符,直到第一个字符为止...
  • (?:\s*DEAD.*)? -可选的组匹配:
    • \s* -0+空格
    • DEAD -文字 DEAD
    • .* -除换行符以外的任意0+个字符,最多不超过
    • $-字符串($的末尾

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式仅在没有特定单词开头时才匹配字符

来自分类Dev

正则表达式:仅匹配嵌入了特定单词的组

来自分类Dev

使用正则表达式仅匹配特定单词中的一个单词

来自分类Dev

正则表达式返回以特定单词开头的行中的所有单词

来自分类Dev

正则表达式:仅当单词前没有单词时才替换短语

来自分类Dev

用于识别仅包含特定单词的字符串的正则表达式

来自分类Dev

正则表达式 - 仅匹配特定单词的字符串

来自分类Dev

如何使用正则表达式仅提取 2 个特定单词之间的数字

来自分类Dev

正则表达式排除特定单词

来自分类Dev

特定单词的Python正则表达式

来自分类Dev

包含特定单词的正则表达式

来自分类Dev

正则表达式匹配特定单词

来自分类Dev

正则表达式名称捕获组不包含一个特定单词

来自分类Dev

仅当字符串中的单词以子字符串开头时才匹配正则表达式

来自分类Dev

正则表达式在一个单词之后匹配特定单词

来自分类Dev

正则表达式-限制单词匹配到以特定单词开头的行

来自分类Dev

使用正则表达式删除特定单词之间的单词

来自分类Dev

正则表达式查找包含给定序列并排除特定单词的单词

来自分类Dev

正则表达式替换特定单词前面的单词

来自分类Dev

仅当最后一组正好是n个字符长时,正则表达式才匹配

来自分类Dev

正则表达式匹配特定单词,但不匹配特定组合

来自分类Dev

选择包含带有正则表达式的特定单词的特定html标签

来自分类Dev

正则表达式提取特定信息,直到出现特定单词

来自分类Dev

仅当正则表达式是字段时才使用正则表达式替换文本

来自分类Dev

将不带引号的特定单词与正则表达式匹配

来自分类Dev

具有特定单词边界的正则表达式

来自分类常见问题

使用正则表达式在特定单词之后获得值的多次出现

来自分类Dev

如何使用正则表达式中的特定单词获取ID?

来自分类Dev

使用正则表达式查找并获取特定单词

Related 相关文章

  1. 1

    正则表达式仅在没有特定单词开头时才匹配字符

  2. 2

    正则表达式:仅匹配嵌入了特定单词的组

  3. 3

    使用正则表达式仅匹配特定单词中的一个单词

  4. 4

    正则表达式返回以特定单词开头的行中的所有单词

  5. 5

    正则表达式:仅当单词前没有单词时才替换短语

  6. 6

    用于识别仅包含特定单词的字符串的正则表达式

  7. 7

    正则表达式 - 仅匹配特定单词的字符串

  8. 8

    如何使用正则表达式仅提取 2 个特定单词之间的数字

  9. 9

    正则表达式排除特定单词

  10. 10

    特定单词的Python正则表达式

  11. 11

    包含特定单词的正则表达式

  12. 12

    正则表达式匹配特定单词

  13. 13

    正则表达式名称捕获组不包含一个特定单词

  14. 14

    仅当字符串中的单词以子字符串开头时才匹配正则表达式

  15. 15

    正则表达式在一个单词之后匹配特定单词

  16. 16

    正则表达式-限制单词匹配到以特定单词开头的行

  17. 17

    使用正则表达式删除特定单词之间的单词

  18. 18

    正则表达式查找包含给定序列并排除特定单词的单词

  19. 19

    正则表达式替换特定单词前面的单词

  20. 20

    仅当最后一组正好是n个字符长时,正则表达式才匹配

  21. 21

    正则表达式匹配特定单词,但不匹配特定组合

  22. 22

    选择包含带有正则表达式的特定单词的特定html标签

  23. 23

    正则表达式提取特定信息,直到出现特定单词

  24. 24

    仅当正则表达式是字段时才使用正则表达式替换文本

  25. 25

    将不带引号的特定单词与正则表达式匹配

  26. 26

    具有特定单词边界的正则表达式

  27. 27

    使用正则表达式在特定单词之后获得值的多次出现

  28. 28

    如何使用正则表达式中的特定单词获取ID?

  29. 29

    使用正则表达式查找并获取特定单词

热门标签

归档