2012-01-04 55 views
1

我想从我的字符串中获取一些信息,但是有两种可能的“表达式”用于字符串。我想从字符串中获得"a" & "b"。这是他们如何看:需要一些帮助从字符串中获取某些内容

格式之一:

http://default.com/default/a/b 

格式二:

http://default.com/#!default|1|a|b|1 

我怎样才能做到这一点?

回答

3

如果字符串总是看起来是这样的,你可以做到以下几点: 搜索#-char来决定,如果你有1型或2 在类型1的情况下,分隔符分裂“/”和总是拿走最后一个。对于类型2,也首先用'/'分割,然后再用分隔符'|'分割最后一部分。并取得结果[2]和结果[3]。

+1

没错,最简单的soultion。你也可以使用正则表达式,但这会更复杂。 – Malcolm 2012-01-04 17:38:24

+0

我该如何检查它是哪一个,以便我可以确定这些信息 – arberb 2012-01-04 17:38:54

+0

例如,如果您可以确保此charsequence仅在类型2中可用,那么您可以使用'contains(“#!default”)'但要小心,如果a和/或b是用户提供的输入。 另一种可能性是计算字符串中/的数量(例如先用'/'进行分割,然后根据得到的数组的长度确定类型,但同样要注意用户提供的输入。 – fkerber 2012-01-04 17:42:00

0

使用正则表达式来拆分字符串。在 “默认”

  1. 拆分
  2. Regex Split
0

有很多方法可以做到这一点 - 正则表达式是最常见的。

在伪码:

if the string contains "/#!default" then: 
    Use the regular expression ^.*/([^/])/([^/])$ 
if the string contains "/default" then: 
    Use the regular expression ^.*|([^|])|([^|])|1$ 
Take the 1st and 2nd blocks from the matcher