「Java中正则匹配」java正则匹配字符串
本篇文章给大家谈谈Java中正则匹配,以及java正则匹配字符串对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java 正则匹配
按照你的要求编写的Java正则匹配程序如下
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class A {
public static void main(String[] args) {
String s="[n]xxxxxxx/[n]";
String regex="((.+?)).*?/\\2";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group(1));
}
}
}
运行结果
[n]
请问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有关正则表示式,我想匹配一个字串中的任意字元,怎么办?
java有关正则表示式,我想匹配一个字串中的任意字元,怎么办?
"\."是被转意了的,是要匹配一个“点”,不用加“\\”,直接用“."就可以了
怎么用正则表示式匹配一个字串java
import java.util.regex.*;
class Regex1{
public static void main(String args[]) {
String str="For my money, the important thing ";
String regEx="ab*";
boolean result=Pattern.pile(regEx).matcher(str).find();
System.out.println(result);
}
}ture
js或者jquery正则表示式匹配一个字串
你好 你这样写 找到了以后他就不会往后找了 要加上全文搜寻 g
这样就好了/\{(.+?)\}/g
用正则表示式去匹配一个字串中的数字
表示式:h3[^\d]*(\d*)[^\d]*/h3
然后取子匹配文字的第一个就可以了
正则表示式匹配一个字串的起始栏位
何必用正则呢,我想到一个思路:将你输入的字串取到(比如是:hel),看他是不是目标串hello的子串,不过子串得从最开始的字元开始。
虚拟码如下:
"hello".substring(0, "hel".length).equals("hel")
如果能成功匹配的话就是合法的,如果不能就不合法。
如果你非要用正则的话,那么就只能穷举所的情况了:h|he|hel|hell|hello
希望可以帮到你!
正则表示式 匹配几个字串
用 /[\.\?!]+_[\.:]/ 来分割即可。
如果用 php,可以这样写:
?php
$str = 'actually_RB have_VBP a_DT few_JJ ._. sets_NNS of_IN these_DT magic_JJ office_NN supply_NN pieces_NNS !_. To_TO illustrate_VB more_JJR fully_RB how_WRB they_PRP look_VBP and_CC can_MD be_VB used_VBN heh_VB..._: I_PRP added_VBD some_DT photos_NNS to_TO the_DT product_NN page_NN that_IN you_PRP can_MD aess_VB from_IN the_DT original_JJ product_NN photo_NN ?_.';
$arr = preg_split('/[\.\?!]+_[\.:]/', $str);
print_r($arr);
?
正则表示式 匹配 两个字串
1234(.*?)56789
JAVA正则表示式 匹配一段字串
import java.util.regex.*;
public class Test1 {
public static void main(String[] args) {
Pattern p = Pattern.pile("[a-zA-Z]123456");
String a="A123456";
String a="H545987"; 可以换成这个
Matcher m = p.matcher(a);
System.out.println(m.matches());
}
}
根据是否正确返回true或false
Java中正则表示式 匹配字串
String regEx = "a([\s\S]*?)/a";
String s = "a123/aa456/aa789/a";
Pattern pat = Pattern.pile(regEx);
Matcher mat = pat.matcher(s);
boolean rs = mat.find();
for(int i=1;i=mat.groupCount();i++){
System.out.println(mat.group(i));
}
关于Java中正则匹配和java正则匹配字符串的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-29,除非注明,否则均为
原创文章,转载请注明出处。