0

我想从输入字符串中提取字符串,并从开头和结尾(如果存在)中删除“/”。

例如 :

输入字符串:/abcd 输出字符串:abcd

输入字符串:/abcd/ 输出字符串:abcd

输入字符串:abcd/ 输出字符串:abcd

输入字符串:abcd 输出字符串:abcd

输入字符串://abcd/ 输出字符串:/abcd

4

5 回答 5

5
public static void main(String[] args) {
    String abcd1 = "/abcd/";
    String abcd2 = "/abcd";
    String abcd3 = "abcd/";
    String abcd4 = "abcd";
    System.out.println(abcd1.replaceAll("(^/)?(/$)?", ""));
    System.out.println(abcd2.replaceAll("(^/)?(/$)?", ""));
    System.out.println(abcd3.replaceAll("(^/)?(/$)?", ""));
    System.out.println(abcd4.replaceAll("(^/)?(/$)?", ""));
}

将工作。

匹配第一个(^/)?表示匹配字符串开头的 0 或 1 '/',(/$)?表示匹配字符串末尾的 0 或 1 '/'。

使正则表达式"(^/*)?(/*$)?"支持匹配多个'/':

String abcd5 = "//abcd///";
System.out.println(abcd1.replaceAll("(^/*)?(/*$)?", ""));
于 2013-01-10T09:32:24.483 回答
0

没有正则表达式的方法:

String input  = "/hello world/";

int length = input.length(),
    from   = input.charAt(0) == '/' ? 1 : 0,
    to     = input.charAt(length - 1) == '/' ? length - 1 : length;

String output = input.substring(from, to);
于 2013-01-10T09:37:17.620 回答
0

另一个猜测:^\/|\/$替换 RegEx。

于 2013-01-10T09:37:25.830 回答
-1

You can try

 String original="/abc/";
 original.replaceAll("/","");

Then do call trim to avoid white spaces.

original.trim();
于 2013-01-10T09:29:53.840 回答
-2

This one seems works :

/?([a-zA-Z]+)/?

Explanation :

/? : zero or one repetition

([a-zA-Z]+) : capture alphabetic caracter, one or more repetition

/? : zero or one repetition

于 2013-01-10T09:31:16.560 回答