用于提取子字符串的正则表达式

use*_*820 0 java regex

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

例如 :

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

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

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

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

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

Ale*_*rlo 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("(^/)?(/$)?", ""));
}
Run Code Online (Sandbox Code Playgroud)

将工作.

匹配第一个(^/)?意味着在字符串的开头匹配0或1'/',并且(/$)?意味着在字符串的末尾匹配0或1'/'.

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

String abcd5 = "//abcd///";
System.out.println(abcd1.replaceAll("(^/*)?(/*$)?", ""));
Run Code Online (Sandbox Code Playgroud)

  • 怎么样"// abcd ///"? (2认同)