如何使用正则表达式查找特殊字符的出现

时间:2017-06-27 19:45:40

标签: python regex python-3.x

我有这样的网址

http://foo.com/bar_by_baz.html

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

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

这是给我的

_by_baz

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

我在python 3.x上尝试

2 个答案:

答案 0 :(得分:2)

  1. 以下是您的正则表达式:[_]+?([^_.]+)组匹配将返回baz ..概念是将下划线和点与目标匹配区分开来

  2. 在另一个案例中,这是基于仅捕获字母数字[_]+?([A-Za-z0-9]+)

答案 1 :(得分:0)

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

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

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

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