java正则

查找所有“以 \ 开头,但却不是 ' 和 \n 的” 字符串
\[[']&&[n]]

查找所有“以 ' 结尾,开头却不是 \ 的字符串”
[^\]'

查找两个;的空语句
;\s+;

查找形如:
new ESkyAsyncHttpResponseHandler(AnswerOrOverDialogActivity.this, UserResult.class) {
@Override
public void onASuccess(ESkyBaseResult bresult) {
的语句,其中"AnswerOrOverDialogActivity.this, UserResult."是随意的,不做限制

new ESkyAsyncHttpResponseHandler((.+),\s([A-Za-z0-9]+).class)\s{\s+@Override\s+public void onASuccess((ESkyBaseResult)\s
替换为
new ESkyAsyncHttpResponseHandler<$2>($1){\n@Override\npublic void onASuccess($2

替换之后的效果为
new RGetUserInfoFriendRequest(entity.from, null, null), new ESkyAsyncHttpResponseHandler(AnswerOrOverDialogActivity.this){
@Override
public void onASuccess(UserResult

哈哈 这个厉害了,总共帮我解决了1000多个替换,全部手写估计要1天。用正则写匹配用了1小时,替换花了3分钟,变种如下:

new ESkyAsyncHttpResponseHandler((.+),\s([A-Za-z0-9]+).class,(.+))\s{\s+@Override\s+public void onASuccess((ESkyBaseResult)\s
替换为
new ESkyAsyncHttpResponseHandler<$2>($1,$3){\n@Override\npublic void onASuccess($2


new ESkyAsyncHttpResponseHandler((.+),\s([A-Za-z0-9]+).class)\s{([\s\S]*)@Override\s+public void onASuccess((ESkyBaseResult)\s
替换为
new ESkyAsyncHttpResponseHandler<$2>($1){$3@Override\npublic void onASuccess($2


new ESkyAsyncHttpResponseHandler((.+),\sESkyBaseResult.class)\s{
替换为
new ESkyAsyncHttpResponseHandler($1){

public void onFailure(int arg0,\s+Header[] arg1,\s+byte[] arg2,\s+Throwable arg3)\s+{
替换为
public void onAError() {

主要是正则的规则:
\s可以匹配到空格tab换行,
[]中的都是一个字符需要满足的规则
()可以将一部分作为一个整体,在后面用$1代替。
.+ 代表任意多的任意字符

然后各种标点符号记得加转义 \ 就行了。

你可能感兴趣的:(java正则)