如果它的一部分与正则表达式匹配,如何提取整个部分?

时间:2018-01-11 06:55:18

标签: regex

例如:

/ticket2243/asd

字符串可以分成两部分。我知道\d{3,}可以匹配2243。但是如何使用正则表达式提取整个部分/ticket2243

4 个答案:

答案 0 :(得分:1)

正则表达式:\/\w{3,}\d{3,}

将获得/ticket2243的{​​{1}}。

答案 1 :(得分:1)

您可以尝试:

/[^/]+(?=/)

说明:

  1. /与首次出现的/
  2. 相匹配
  3. [^/]+捕获除“/”之外的所有内容,其中+表示一个或多个
  4. (?=/)它确保整个事物都被另一个事物所遵循 正斜杠但你也可以忽略或删除它。但是这样可以确保/ asd不匹配。
  5. 通过使用你得到:

    /ticket2243
    

    Demo

    如果您需要这样的所有部分,那么您可以使用:

    /[^/]+
    

    现在你得到两场比赛:

    1)  /ticket2243
    2)  /asd
    

    Demo 2

答案 2 :(得分:0)

尝试以下正则表达式!

^表示第一个字符必须是'\'。

[]显示字符类,其中表示要提取所有内容但不是'\'。

'*'多次捐赠。

之后你在'/'。

之前提取
(^\/)[^\/]*(?=\/)

我还附上了输出的截图。 Output

答案 3 :(得分:0)

如果您要匹配的数据如下所示:

正斜杠,小写字符后跟数字......你可以像这样匹配:

^/[a-z]+\d+

<强>解释

  • 从字符串^
  • 的开头
  • 匹配正斜杠/
  • 匹配小写字符一次或多次[a-z]+
  • 匹配数字一次或多次\d+

如果你只想从第一个正斜杠到下一个正斜杠匹配,你可以这样做(正如@anubhava在他的评论中所建议的那样):

^/[^/]+

<强>解释

  • 从字符串^
  • 的开头
  • 匹配正斜杠/
  • 匹配,直到您遇到一次或多次正斜杠[^/]+