正则表达式提取第二个破折号/连字符之前的所有字符

布莱恩·邓森

我需要一个php正则表达式,它将在这种类型的字符串的第二个破折号/连字符之前提取所有字符:

EDM-2112-100-2013 ==> EDM-2112 ABCD-2002-100-2014 ==> ABCD-2002

而且,我知道我可以使用各种字符串操作函数来完成此操作(substr等),但是它必须是正则表达式。我们正在使用正则表达式定义特定于客户的规则,这些规则将在数据显示时进行评估。呈现数据时,我们将来自数据库的客户特定正则表达式应用于入站数据,然后使用提取的数据。

卡西米尔和希波吕特

您可以使用以下模式:

\A(?:[^-]++-??){2}

图案细节:

\A            # anchor for the start of the string
(?:           # open a non-capturing group
    [^-]++    # all that is not an hyphen (possessive)
    -??       # optional hyphen (lazy)
){2}          # repeat the group 2 times

我承认这种模式有些棘手。它利用占有所有的量词在第一次出现时就强制使用连字符的事实,即使该量词是惰性的也是如此。在第二种情况中,连字符不匹配。

您可以写得更简单: \A[^-]+-[^-]+

如果要检查比赛之后是否还有第二个连字符,则只需在两个模式之一的末尾添加此超前字符(?=-)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式在第二个破折号后删除所有内容

来自分类Dev

正则表达式-在最后一个连字符/破折号之前提取文本

来自分类Dev

如何在正则表达式中的破折号字符之前获取所有内容?

来自分类Dev

正则表达式匹配至少包含3个破折号/连字符的字符串

来自分类Dev

正则表达式用于返回不带连字符/破折号的精确匹配

来自分类常见问题

正则表达式在第二个斜杠后提取字符串并在Java中=

来自分类Dev

需要在字符串中第二个破折号之后得到所有东西?

来自分类Dev

仅在字符正则表达式之前匹配空格,并用破折号替换空格

来自分类Dev

如果字符串包含连字符,请使用正则表达式验证第二个名字

来自分类Dev

正则表达式在第二个“。”之后提取字符串。字符串末尾的点字符

来自分类Dev

使用正则表达式在字符之间跳过第二个字符串

来自分类Dev

正则表达式从字符的倒数第二个出现开始显示字符串

来自分类Dev

正则表达式匹配所有字符串,中间有点的字符串,不匹配中间有破折号的字符串

来自分类Dev

如何使用正则表达式检查字符串的第二个字符中是否有字母

来自分类Dev

Java匹配正则表达式然后使用第二个正则表达式格式化字符串

来自分类Dev

如何使用正则表达式删除第二个子字符串?

来自分类Dev

用正则表达式解析字符串的第二个数字组合

来自分类Dev

正则表达式删除与第二个字符串匹配的行?

来自分类Dev

如何使用正则表达式删除第二个子字符串?

来自分类Dev

正则表达式更改字符串中的第二个匹配项

来自分类Dev

VBA正则表达式-第二个字符串匹配可选

来自分类Dev

JavaScript正则表达式捕获倒数第二个反斜杠之后的所有内容

来自分类Dev

如何在javascript中使用正则表达式提取破折号之间的字符串?

来自分类Dev

正则表达式-第二个位置没有“ p”

来自分类Dev

正则表达式只用一个破折号获取字符串

来自分类Dev

替代正则表达式以匹配前两个破折号之间的所有文本

来自分类Dev

剃刀正则表达式替换所有数字和一个破折号之间

来自分类Dev

破折号在R正则表达式中是特殊字符吗?

来自分类Dev

正则表达式随机字符串加上可选的破折号和数字

Related 相关文章

  1. 1

    正则表达式在第二个破折号后删除所有内容

  2. 2

    正则表达式-在最后一个连字符/破折号之前提取文本

  3. 3

    如何在正则表达式中的破折号字符之前获取所有内容?

  4. 4

    正则表达式匹配至少包含3个破折号/连字符的字符串

  5. 5

    正则表达式用于返回不带连字符/破折号的精确匹配

  6. 6

    正则表达式在第二个斜杠后提取字符串并在Java中=

  7. 7

    需要在字符串中第二个破折号之后得到所有东西?

  8. 8

    仅在字符正则表达式之前匹配空格,并用破折号替换空格

  9. 9

    如果字符串包含连字符,请使用正则表达式验证第二个名字

  10. 10

    正则表达式在第二个“。”之后提取字符串。字符串末尾的点字符

  11. 11

    使用正则表达式在字符之间跳过第二个字符串

  12. 12

    正则表达式从字符的倒数第二个出现开始显示字符串

  13. 13

    正则表达式匹配所有字符串,中间有点的字符串,不匹配中间有破折号的字符串

  14. 14

    如何使用正则表达式检查字符串的第二个字符中是否有字母

  15. 15

    Java匹配正则表达式然后使用第二个正则表达式格式化字符串

  16. 16

    如何使用正则表达式删除第二个子字符串?

  17. 17

    用正则表达式解析字符串的第二个数字组合

  18. 18

    正则表达式删除与第二个字符串匹配的行?

  19. 19

    如何使用正则表达式删除第二个子字符串?

  20. 20

    正则表达式更改字符串中的第二个匹配项

  21. 21

    VBA正则表达式-第二个字符串匹配可选

  22. 22

    JavaScript正则表达式捕获倒数第二个反斜杠之后的所有内容

  23. 23

    如何在javascript中使用正则表达式提取破折号之间的字符串?

  24. 24

    正则表达式-第二个位置没有“ p”

  25. 25

    正则表达式只用一个破折号获取字符串

  26. 26

    替代正则表达式以匹配前两个破折号之间的所有文本

  27. 27

    剃刀正则表达式替换所有数字和一个破折号之间

  28. 28

    破折号在R正则表达式中是特殊字符吗?

  29. 29

    正则表达式随机字符串加上可选的破折号和数字

热门标签

归档