正则表达式获取网址分组

时间:2011-03-31 04:33:19

标签: regex

如果我有URL contstruct

/ SomePart /#/组别1 /组2

我需要返回group1和/或group2,即url可以是 / SomePart /#/组别1 要么 / SomePart /#/组别1 /组2

目前的正则表达式只有第一部分,不知道如何扩展到后者。

SomePart\/\#\/([a-zA-Z0-9_-]+)

1 个答案:

答案 0 :(得分:0)

你需要使用正则表达式吗?通常使用正则表达式是过度的。几行代码比正则表达式更快,更易于维护。

如果您的语言有分割方法,只需使用它并检查生成的数组中的最后两项。

arr = url.split("/")
if arr[len-2] == "#":
  # There is only one group, so return arr[len-1]
else:
  # Return the last two elements of the array as Group1 and Group2

这个伪代码可能是一个很好的起点。在分手时,适用的引用:

  

“调试是写入的两倍   代码首先。   因此,如果您将代码编写为   尽可能巧妙地,你是   定义,不够智能调试   它。“ - Brian Kernighan

拯救你聪明的东西:)