【问题标题】:how to find occurrence of special character using regex如何使用正则表达式查找特殊字符的出现
【发布时间】:2017-12-01 00:00:26
【问题描述】:

我有一个这样的网址

http://foo.com/bar_by_baz.html

现在我想使用正则表达式从该 URL 中提取 baz。但到目前为止我只写了这么多

[_]+?\w[^.]+

这是给我的

_by_baz

作为输出。现在我想知道如何才能准确地选择任何特殊字符一次,或者使用正则表达式解决此问题的最佳方法是什么?

我正在 python 3.x 上尝试它

【问题讨论】:

  • 也许有像([^\/_]+)\.html这样的捕获组?或前瞻:[^\/_]+(?=\.html)?
  • 请说明您的环境是什么,正则表达式风格是什么,是否支持环视 - 您在做什么以及为什么不使用 parse_url 之类的函数/方法?

标签: python regex python-3.x


【解决方案1】:

我将从您的个人资料中假设您正在寻找一个对 javascript 友好的解决方案(您应该更新您的问题和标签)。

对于 javascript,您可以使用以下模式:/[^_]+(?=\.[a-z]+$)/

Demo Link 模式匹配不包含下划线的子字符串,后跟一个点,然后是一个或多个字母字符,直到字符串的末尾。

有几种方法可以完成您的任务。只有提供有关编码环境/语言的更多信息和更多示例字符串,才能找到最佳/最有效的方法。

【讨论】:

    【解决方案2】:
    1. 这是您的正则表达式:[_]+?([^_.]+) 组匹配将返回 baz.. 概念是将下划线和点与目标匹配隔离

    2. 在另一种情况下,这基于仅捕获字母数字 [_]+?([A-Za-z0-9]+)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多