重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java匹配代码模板,模板匹配的方法

在JAVA中,用正则表达式 匹配指定数字次数的代码怎么写呢,求助!求助

涉及(统计数量)这类有语义的就不该用正则了。

创新互联建站-专业网站定制、快速模板网站建设、高性价比桃城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式桃城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖桃城地区。费用合理售后完善,十年实体公司更值得信赖。

直接逐个字符过滤反而更快。

按规则:

1、2、4各最多出现1次或不出现;

3最多出现2次以下或不出现;

其他符号非法;

设c计数

public class Test {

static public boolean validate(String t){

int c[]=new int[4];

for(char ch:t.toCharArray()){

switch(ch){

case '1':case '2':case '3':case '4':

c[ch-'1']++;

if(c[0]1 || c[1]1 || c[3]1 || c[2]2 ) return false;

break;

default:

return false;

}

}

return c[0]=1 c[1]=1 c[2]=2 c[3]=1;

}

static public void main(String argv[]){

String a[]={ "12112","1211","142","1411","133","1321",

"133","1312", "13312", "1362", "1332" };

for(String t:a)

if(validate(t)) System.out.println(t);

}

}

========

142

133

133

1332

========

另你例中有1211,出现有3个1所以不合法。

java中怎么匹配字符串

匹配方式(其中每个方式对应RegUtil.java中的一个方法)代码:

package test;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegUtil {

/**

* 方式一:基本正则表达式实现

* @param str

* @param reg

* @return

*/

public static boolean matchMatcher(String str,String reg){

Pattern pattern =Pattern.compile(reg);

Matcher matcher=pattern.matcher(str);

return matcher.matches();

}

/**

* 方式二:利用Pattern自带实现

* @param str

* @param reg

* @return

*/

public static boolean matchPattern(String str,String reg){

return Pattern.matches(reg, str);

}

/**

* 方式三:String自带实现

* @param str

* @param reg

* @return

*/

public static boolean matchStr(String str,String reg){

return str.matches(reg);

}

}

对应单元测试代码如下:

package test;

import org.junit.Assert;

import org.junit.Test;

public class TestReg {

@Test

public void testParttern(){

Assert.assertTrue(RegUtil.matchMatcher("123", "//d+"));

Assert.assertTrue(RegUtil.matchPattern("123", "//d+"));

Assert.assertTrue(RegUtil.matchStr("123", "//d+"));

}

}

java正则匹配语句中特定单词

使用正则表达式的 “零宽度正回顾后发断言“这个正则就是匹配以某个指定字符开头的字段,具体定义你可以去搜索一下,java代码如下:

String target = "scoreboard objectives setdisplay sidebar R_HT_win";

Pattern pattern = Pattern.compile("(?=scoreboard objectives setdisplay sidebar\\s{1})\\w*");

Matcher matcher = pattern.matcher(target);

String result = null;

if (matcher.find()){

int startIndex = matcher.start();

int endIndex = matcher.end();

result = target.substring(startIndex,endIndex);

}

System.out.println(result);

怎么用java写一个正则表达式去匹配包含一个或多个“*”的字符串

Pattern pattern = Pattern.compile("^[^\\*]*\\*+.*$");

Matcher matcher = pattern.matcher(你要匹配的字符串);

if(matcher.matches())

{

//TODO:匹配

}

else

{

//TODO:不匹配

}

上面的代码应该可以满足你的要求,不过你要判断是否包含一个*。为什么不直接用contains("*") 或者 indexOf("*") 0 呢?呵呵,希望对你有所帮助。

怎样用java的正则表达式匹配这样的网址

Java中正则表达式匹配的语法规则:以下是整理出来的Java下运用正则表达式实现匹配的程序案例,代码如下:package org.luosijin.test;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 正则表达式 * @version V5.0 * @author Admin * @date 2015-7-25 */public class Regex { /** * @param args * @author Admin * @date 2015-7-25 */ public static void main(String[] args) { Pattern pattern = Pattern.compile("b*g"); Matcher matcher = pattern.matcher("bbg"); System.out.println(matcher.matches()); System.out.println(pattern.matches("b*g","bbg")); //验证邮政编码 System.out.println(pattern.matches("[0-9]{6}", "200038")); System.out.println(pattern.matches("//d{6}", "200038")); //验证电话号码 System.out.println(pattern.matches("[0-9]{3,4}//-?[0-9]+", "02178989799")); getDate("Nov 10,2009"); charReplace(); //验证身份证:判断一个字符串是不是身份证号码,即是否是15或18位数字。 System.out.println(pattern.matches("^//d{15}|//d{18}$", "123456789009876")); getString("D:/dir1/test.txt"); getChinese("welcome to china,江西奉新,welcome,你!"); validateEmail("luosijin123@163.com"); } /** * 日期提取:提取出月份来 * @param str * @author Admin * @date 2015-7-25 */ public static void getDate(String str){ String regEx="([a-zA-Z]+)|//s+[0-9]{1,2},//s*[0-9]{4}"; Pattern pattern = Pattern.compile(regEx); Matcher matcher = pattern.matcher(str); if(!matcher.find()){ System.out.println("日期格式错误!"); return; } System.out.println(matcher.group(1)); //分组的索引值是从1开始的,所以取第一个分组的方法是m.group(1)而不是m.group(0)。 } /** * 字符替换:本实例为将一个字符串中所有包含一个或多个连续的“a”的地方都替换成“A”。 * * @author Admin * @date 2015-7-25 */ public static void charReplace(){ String regex = "a+"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher("okaaaa LetmeAseeaaa aa booa"); String s = matcher.replaceAll("A"); System.out.println(s); } /** * 字符串提取 * @param str * @author Admin * @date 2015-7-25 */ public static void getString(String str){ String regex = ".+/(.+)$"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(str); if(!matcher.find()){ System.out.println("文件路径格式不正确!"); return; } System.out.println(matcher.group(1)); } /** * 中文提取 * @param str * @author Admin * @date 2015-7-25 */ public static void getChinese(String str){ String regex = "[//u4E00-//u9FFF]+";//[//u4E00-//u9FFF]为汉字 Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(str); StringBuffer sb = new StringBuffer(); while(matcher.find()){ sb.append(matcher.group()); } System.out.println(sb); } /** * 验证Email * @param email * @author Admin * @date 2015-7-25 */ public static void validateEmail(String email){ String regex = "[0-9a-zA-Z]+@[0-9a-zA-Z]+//.[0-9a-zA-Z]+"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(email); if(matcher.matches()){ System.out.println("这是合法的Email"); }else{ System.out.println("这是非法的Email"); } }}


新闻标题:java匹配代码模板,模板匹配的方法
当前地址:http://cqcxhl.cn/article/hosjsg.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP