Java 处理字符串方法搜集


//去掉字符串首位引号
private String trimQuotes(String s) {
int index = -1;
if (s.charAt(0) == '"') {
index = s.lastIndexOf('"');
s = s.substring(1, index);
}
return s;
}



//插入字符串-1
String s = "apqs book bobs book";
//在左面是apq右面是是s处插入字符串"'"
String reg1 = "(?<=apq)(?=s\\b)";
Pattern p = Pattern.compile(reg1);
Matcher m = p.matcher(s);
s = m.replaceAll("'");
System.out.println(s); //apq's book bobs book

//替换字符串-1
String s = "apqs book bobs book";
String reg1 = "(apq)(s\\b)";
Pattern p = Pattern.compile(reg1);
Matcher m = p.matcher(s);
s = m.replaceAll("$1'$2");
System.out.println(s); //apq's book bobs book

//替换字符串-2
System.out.println(s.replaceAll("apqs\\b", "apq's")); //apq's book bobs book

//插入字符串-2
String s = "价格 ¥987654321 元 ";
//首先从字符串末尾开始找,当走到4和3中间的时候问问:
//左面的是不是有一位数字(?<=\\d),右面是不是有三位数字(?=(\\d\\d\\d)+)
//如果是插入逗号在4和3中间
String reg = "(?<=\\d)(?=(\\d\\d\\d)+$)";
//(?!\\d)起定位作用,右面不是数字
String reg1 = "(?<=\\d)(?=(\\d\\d\\d)+(?!\\d))";
Pattern p = Pattern.compile(reg1);
Matcher m = p.matcher(s);
s = m.replaceAll(",");
System.out.println(s);*/ //价格 ¥987,654,321 元



//匹配E-mail
s = "apq@163.com eee";
String reg = "\\b(\\w[-.\\w]*\\@[-a-zA-Z0-9]+(\\.\\w+)+)\\b";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(s);
s = m.replaceAll("<a href='mailto:$1'>$1</a>");
//<a href='mailto:apq@163.com'>apq@163.com</a> eee
System.out.println(s);

//匹配Http URL
String reg = "\\b(http://[-a-zA-Z0-9]+(\\.[-a-zA-Z0-9]+)*\\.(com|cn|edu|org|info)\\b(/[-a-zA-Z0-9_:\\@&?=+,.!/~*'%\\$]*(?<![.,?!]))?)";


[size=medium][b](?=) (?!) (?<=) (?<!)[/b][/size]

(?=) (?!) (?<=) (?<!)
String s = "555a666b";
//-----------------------------------------
//(从前往后数)

//(?=a)放在后面: 后面是a的,不捕获a //555
//(?=a)放在前面: 开头的是a,如果符合条件一共捕获 3个字符, 包括a, 否则不捕获//a66
//Pattern p = Pattern.compile(".{3}(?=a)");

//(?!a)放在后面: 后面的不是a,不捕获a //55a 666
//(?!a)放在前面: 前面的不是a //555 666
//Pattern p = Pattern.compile("(?!a).{3}");
//-----------------------------------------
//从后往前数)

//(?<=a)放在后面: 一次吃三个字符, 结尾是a的(从后往前数),包括a //55a
//(?<=a)放在前面: 一次吃三个字符, 开头的是a(从后往前数),不包括a //666
//Pattern p = Pattern.compile("(?<=a).{3}");

//(?<!a)放在后面: 一次吃三个字符, 结尾的不是a(从后往前数) //555 a66
//(?<!a)放在前面: //555 a66
Pattern p = Pattern.compile("(?<!a).{3}");

Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group());
}



//匹配多行注释
String reg1 = "/\\*[^*]*\\*+(?:[^/*][^*]*\\*+)*/";
//匹配单行注释
String reg2 = "//[^\n]*";
//匹配字符串
String reg3 = "\"[^\"]*(\\\\.[^\"]*)*\"";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值