![](/img/trans.png)
[英]Extracting a substring in Java using regex. How to include space characters
[英]Regex for extracting a substring
我想从输入字符串中提取字符串,并从开头和结尾(如果存在)中删除“/”。
例如 :
输入字符串: /abcd
输出字符串: abcd
输入字符串: /abcd/
输出字符串: abcd
输入字符串: abcd/
输出字符串: abcd
输入字符串: abcd
输出字符串: abcd
输入字符串: //abcd/
输出字符串: /abcd
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("(^/*)?(/*$)?", ""));
没有正则表达式的方法:
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);
再猜一下: ^\\/|\\/$
代替RegEx。
你可以试试
String original="/abc/";
original.replaceAll("/","");
然后调用trim以避免出现空格。
original.trim();
这个似乎有效:
/?([a-zA-Z]+)/?
说明:
/? :零或一次重复
([a-zA-Z] +):捕获字母特征,一次或多次重复
/? :零或一次重复
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.