java正则表达式怎么java定义字符只替换中间的字符

博客分类:
package com.
import java.util.regex.P
public class StringUtils {
/**匹配&或全角状态字符或标点*/
public static final String PATTERN="&|[\uFE30-\uFFA0]|‘’|“”";
public static String replaceSpecialtyStr(String str,String pattern,String replace){
if(isBlankOrNull(pattern))
pattern="\\s*|\t|\r|\n";//去除字符串中空格、换行、制表
if(isBlankOrNull(replace))
replace="";
return Pattern.compile(pattern).matcher(str).replaceAll(replace);
public static boolean isBlankOrNull(String str){
if(null==str)
//return str.length()==0?true:
return str.length()==0;
/**清除数字和空格*/
public static
String cleanBlankOrDigit(String str){
if(isBlankOrNull(str))return "null";
return Pattern.compile("\\d|\\s").matcher(str).replaceAll("");
* Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类。
/pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。
大写 P 表示 Unicode 字符集七个字符属性之一:标点字符。\\pP‘’“”]",如果在 JDK 5 或以下的环境中,全角单引号对、双引号对
其他六个是
M:标记符号(一般不会单独出现);
Z:分隔符(比如空格、换行等);
S:符号(比如数学符号、货币符号等);
N:数字(比如阿拉伯数字、罗马数字等);
C:其他字符
public static void main(String[] args){
System.out.println(replaceSpecialtyStr("中国电信2011年第一批IT设备集中采购-存储备份&(),)(UNIX服务器",PATTERN , ""));
摘抄:
str = str.replaceAll("[\\pP‘’“”]", "");
Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类。
\pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。
大写 P 表示 Unicode 字符集七个字符属性之一:标点字符。
其他六个是
L:字母;
M:标记符号(一般不会单独出现);
Z:分隔符(比如空格、换行等);
S:符号(比如数学符号、货币符号等);
N:数字(比如阿拉伯数字、罗马数字等);
C:其他字符
上面这七个是属性,七个属性下还有若干个子属性,用于更进一步地进行细分。
Java 中用于 Unicode 的正则表达式数据都是由 Unicode 组织提供的。
Unicode 正则表达式标准(可以找到所有的子属性)
http://www.unicode.org/reports/tr18/
各 Unicode 字符属性的定义,可以用一看看某个字符具有什么属性。
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
这个文本文档一行是一个字符,第一列是 Unicode 编码,第二列是字符名,第三列是 Unicode 属性,
以及其他一些字符信息。
浏览 11912
return str.length()==0?true:
这代码写的真别扭,直接
return str.length()==0;不就好了
hi,JetMah,多谢多指点,已更新
浏览: 358155 次
来自: 广州
java过滤emoji字符处理,希望能帮到你http://ww ...
按照楼主这样是可以页面是可以完成效果,但是后台依旧会报错打印出 ...
sunshaoqun 写道二次元 写道希望能分享下.so文件编 ...
二次元 写道希望能分享下.so文件编译源码!求.so源码。。。 ...
多谢,网上说的 “选择你要生成Build.xml文件的项目,右 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'如何用正则表达式替换身份证号码的中间部分为星号? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。2被浏览<strong class="NumberBoard-itemValue" title="分享邀请回答赞同 2 条评论分享收藏感谢收起写回答&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
Java正则表达式,匹配、替换字符串中的占位符
摘要:有这样一个场景:替换sql字符串中的占位符,`Stringsql=&select*from#{tableName}&;`。有朋友会想直接用String.RepaceAll()替换就可以啦?但是“#{tableName}”是合法值域中的任意一个值,也就是说“#{table}”,“#{table1}”等都是合法的。这时String类的方法就不够使了。下面介绍Pattern和Matcher两个类,用代码演示上述需求:```importjava.util.rege
有这样一个场景:替换sql字符串中的占位符,` String sql = &select* from #{tableName}&;`。
有朋友会想直接用String.RepaceAll()替换就可以啦?但是“#{tableName}”是合法值域中的任意一个值,也就是说“#{table}”,“#{table1}”等都是合法的。
这时String类的方法就不够使了。下面介绍Pattern和Matcher两个类,用代码演示上述需求:
import java.util.regex.M
import java.util.regex.P
* Created by nipin on 16/11/16.
public class Regix {
public static void main(String[] args) {
String sql = &select * from #{tableName}&;
Pattern pattern = Pattern.compile(&(#//{.*//})&);
Matcher matcher = pattern.matcher(sql);
if (matcher.find()) {
System.out.println(matcher.group(0));
sql = matcher.replaceAll(&your_table&);
System.out.println(sql);
![输入图片说明](/2014th7cj/d/file/p/aqnfabayvl.png &在这里输入图片标题&)
[关于更详细的正则表达式介绍](http://www.runoob.com/java/java-regular-expressions.html)
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
新用户大礼包!
现在注册,免费体验40+云产品,及域名优惠!
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
Java正则表达式,匹配、替换字符串中的占位符相关信息,包括
的信息,所有Java正则表达式,匹配、替换字符串中的占位符相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International博客分类:
public static String regexReplace(String str){
Pattern p =
Matcher m =
String value =
// 去掉&&标签及其之间的内容
p = Pattern.compile("(&[^&]*&)");
m = p.matcher(str);
String temp =
//下面的while循环式进行循环匹配替换,把找到的所有
//符合匹配规则的字串都替换为你想替换的内容
while (m.find()) {
value = m.group(0);
temp = temp.replace(value, "你要替换的内容");
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
匹配HTML标记的正则表达式: &(\S*?)[^&]*&.*? &/\1& | &.*? /&
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^\s* |\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:\d{3}-\d{8} |\d{4}-\d{7}
评注:匹配形式如
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字
匹配身份证:\d{15} |\d{18}
评注:中国的身份证为15位或18位
匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d* |0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d* |0$   //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d* |0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d* |0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d* |0\.\d*[1-9]\d* |0?\.0+ |0)$  //匹配浮点数
^[1-9]\d*\.\d* |0\.\d*[1-9]\d* |0?\.0+ |0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d* |0\.\d*[1-9]\d*)) |0?\.0+ |0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式,在java中对\应在前面加转换符\
浏览 34822
浏览: 168529 次
能把源码发我邮箱吗 谢谢了
shishisssss
感觉不错啊,谢谢分享了
请问有源码么?看之前评论貌似有的
源码在哪里呢?谢谢
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'java正则表达式替换一段字符串_百度知道
java正则表达式替换一段字符串
遇到一个需求是需要将数据库查询语言中的from后的所有字段全部原样取出,在from前加上selectcount(*),如下```&Selectafrom&+TbItem.class.getName()+&a&+&wherea.id=:id&替换成“Sele...
遇到一个需求是需要将数据库查询语言中的from后的所有字段全部原样取出,在from前加上select count(*), 如下``` & Select a from & + TbItem.class.getName() + & a & + & where a.id= :id& 替换成 “ Select count(*) from & + TbItem.class.getName() + & a & + & where a.id= :id”```或者``` &from Employee e where e.name = :name& 替换成 “select cout(*) from Employee e where e.name = :name”```因为有的语句没有select,所以要定位到from前替换
&#xe6b9;答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
紫薇参星知道合伙人
来自电脑网络类芝麻团
采纳数:2604
获赞数:6495
参与团队:
Java正则表达式& .*(from.*)$&& 替换成& select count(*) $1完整的Java替换程序如下public&class&AA&{&public&static&void&main(String[]&args)&{&&String&s=&&Select&a&from&xxx&a&&&+&&&where&a.id=&:id&;&&String&regex&=&&.*(from.*)$&;&&String&result=s.replaceAll(regex,&select&count(*)&$1&);&&System.out.println(result);&}}运行结果select&count(*)&from&xxx&a&&where&a.id=&:id因为我不知道TbItem.class.getName()方法返回的表名,所以用xxx代替.你可以用String&s=&&Select&a&from&&&+&TbItem.class.getName()&+&&&a&&&+&&&where&a.id=&:id&;没问题不用改.
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 java定义字符数组 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信