`
hubin4
  • 浏览: 96702 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

ma-regex

阅读更多
public class HbTast {
public static void main(String[] args) {
p("abc".matches("...."));
p("a34234c".replaceAll("\\d", "-"));

p("A".matches("[a-zA-Z]"));
p("A".matches("[a-z]|[A-Z]"));
p("A".matches("[a-z[A-Z]]"));
//上面三个写法一样的,推荐第一种
p("R".matches("[A-Z&&[RFG]]"));
//这好象有点多余了,不知道其他地方会不会用
}

public static void p(Object o) {
System.out.println(o);
}

}

//看看MS的大人们写的
我国邮政编码
\d{6}

ID
\d{17}[\d|X]|\d{15}

tel
(\(\d{3}\)|\d{3}-)?\d{8}

mail:
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
普通人看的顺的可以这么写
[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+

url
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

JS里都要好好看看,现在JAVA里又来问题了

虽然只有三个类,但是还是很烦

★String 的 matches
public boolean matches(String regex)
通知此字符串是否匹配给定的正则表达式。

此方法调用的 str.matches(regex) 形式与以下表达式产生完全相同的结果:

Pattern.matches(regex, str)[都是全匹配]
所以我们不要用Pattern.matches方法
就把Pattern记得为两个方法
1 编译 compile
2 matcher 返回一个 Matcher对象[N多东西放里面了]

Matcher里只要记得二个重要的方法
matches 方法尝试将整个输入序列与该模式匹配。

find 方法扫描输入序列以查找与该模式匹配的下一个子序列。

这两个方法都返回 boolean值 并且互相影响
可以m.reset();


Pattern p = Pattern.compile("\\d{3,5}");
String s = "123-34345-234-00";
Matcher m = p.matcher(s);
p(m.matches());
m.reset();//把吃的吐出来
p(m.find());//找到一次,改变下面的两个值
p(m.start() + "-" + m.end());
p(m.find());
p(m.start() + "-" + m.end());
p(m.find());
p(m.start() + "-" + m.end());
p(m.find());
//p(m.start() + "-" + m.end());找不到,不可以打印
===========

public class HbTast {
public static void main(String[] args) {
Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");
//把所以JAVA不管大小写,都换JAVA
while(m.find()) {
p(m.group());//找到一个输出一个
}
}

public static void p(Object o) {
System.out.println(o);
}

}
===================================
public class HbTast {
public static void main(String[] args) {
Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");
//把所以JAVA不管大小写,都换JAVA
p(m.replaceAll("JAVA"));
}

public static void p(Object o) {
System.out.println(o);
}

}
==============真的替换了
public class HbTast {
public static void main(String[] args) {
Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");
StringBuffer buf = new StringBuffer();
int i=0;
while(m.find()) {
i++;
if(i%2 == 0) {
m.appendReplacement(buf, "java");
} else {
m.appendReplacement(buf, "JAVA");
}
}
m.appendTail(buf);
p(buf);
}

public static void p(Object o) {
System.out.println(o);
}

===================隔花替换
效果:JAVA java JAVA java IloveJAVA you hatejava afasdfasdf

==看看JAVA的分组
Pattern p = Pattern.compile("\\d{3,5}[a-z]{2}");
String s = "123aa-34345bb-234cc-00";
Matcher m = p.matcher(s);
while(m.find()) {
p(m.group());
}
输出
123aa
34345bb
234cc

如果只相输出 数字 或者字母,可以分组
看下面,实际上有三组 0组最大,全部  1组第一对(),...
m.group() 0组
m.group(1) 1组
m.group(2) 组
Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
String s = "123aa-34345bb-234cc-00";
Matcher m = p.matcher(s);
while(m.find()) {
p(m.group(1)+" : "+ m.group(2));
}
}

123 : aa
34345 : bb
234 : cc
分享到:
评论

相关推荐

    Build-Regex:RegEx GUI

    使用自豪地构建RegEx 。 我所做的就是将其转换为GUI。 别客气 :) 特征 选择要匹配的选项和文本 添加更多匹配选项 拖放以重新排序您的匹配选项 选择要使用的修饰符(全局,不区分大小写,多行) 用您刚刚节省的...

    regex-vis

    《regex-vis:深入理解正则表达式与TypeScript实现》 正则表达式(Regular Expression,简称regex)是编程领域中一种强大的文本处理工具,它用于模式匹配、查找、替换和提取文本。在软件开发中,掌握正则表达式能够...

    找出什么占用了可执行文件中的大部分空间。-Rust开发

    找出什么占用了可执行文件中...如果需要使用--filter选项进行正则表达式过滤,请安装cargo install cargo-bloat或cargo install cargo-bloat --features regex-filter。 用法获取发布版本中最大功能的列表:货运百分比

    Java-异常(习题).doc

    - 异常类 `java.util.regex.PatternSyntaxException`,从分类上说,该类属于**未检查**异常,从处理方式上说,对这种异常**直接抛出**。 **题目3**:异常的产生 完成以下代码片段: ```java public static void ...

    soal-shift-sisop-modul-1-D12-2021

    Ryujin diminta untuk mengumpulkan通知日志文件aplikasi pada文件syslog.log yang berupa jenis log(INFO atau错误),pesan日志,dan用户名pada setiap baris lognya dengan menggunakan regex untuk mempermu

    输入法中文字体

    "Luo","Ma","Mai","Man","Mang","Mao","Me","Mei","Men","Meng","Mi","Mian", "Miao","Mie","Min","Ming","Miu","Mo","Mou","Mu","Na","Nai","Nan","Nang", "Nao","Ne","Nei","Nen","Neng","Ni","Nian","Niang",...

    Java用正则表达式如何读取网页内容

    在Java中,`java.util.regex`包提供了`Pattern`和`Matcher`类来创建和执行正则表达式。例如,`getTitle`方法使用正则表达式`"<title>.*?</title>"`来匹配HTML中的`<title>`标签,从而获取网页标题: ```java public...

    C#中三种判断是不是数字的方法

    Regex reg = new Regex("^[0-9]+$"); Match ma = reg.Match(text); if (ma.Success) { Console.Write("是数字"); } else { Console.Write("非数字"); } ``` 这种方法可以快速判断字符串是否为数字,但需要掌握正则...

    C# 根据ip获取城市等相关信息

    Regex ipReg = new Regex(ipRegStr, RegexOptions.None); ma = ipReg.Match(html); ip = ma.Value; int index = html.LastIndexOf(":")+1; country = html.Substring(index); adr = GetAdrByIp(ip); return ...

    RegExpTool-win:正则表达式测试工具,使用Java开发,方便跨平台离线使用。Java,Python和C#当前支持正则表达式实现引擎,当前版本为beta。使用JavaFX 11组件开发,请遵循BSD协议,您可以免费获取和修改该程序,完全开源

    正则表达式测试工具正则表达式测试工具,使用Java开发,方便跨平台离线使用.Java,Python和C#当前支持正则表达式实现引擎,当前版本为beta。使用JavaFX 11组件开发,请遵循BSD协议,您可以免费获取和... \SRC├─ma

    asp的RegExp对象正则表达式功能用法[比较全]

    RegExp对象提供简单的正则表达式支持功能。 RegExp对象的用法: 代码如下: Function RegExpTest(patrn, strng) Dim regEx, Match, Matches ‘ 建立变量。 Set regEx = New RegExp ‘ 建立正则表达式。... For Each Ma

    ip地址库 很全的库

    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * 用来读取QQwry.dat文件,以根据ip获得好友位置,QQwry.dat的格式是 一. 文件头,共8字节 1. 第一个起始IP的绝对偏移, ...

    C#开发和使用中的23个技巧

    5. **LIKE语句的存储过程**:在存储过程中,使用字符串拼接生成包含通配符的查询,例如`WHERE haoma LIKE '%' + @hao + '%'`。 6. **处理回车键消息**:在TextBox的`KeyPress`事件中检查字符代码,当为回车键...

    rant3:(过时)Rant 3.x的存档

    Rant是一种通用的过程文本引擎,最简单地描述为Regex的反义词。 它经过了完善,包括令人眼花array乱的功能,可处理从最基本的字符串生成任务到高级对话生成,代码模板,自动格式化等各种事务。 该项目的目标是使...

    汉字转拼音

    通常,你可以选择不表示声调(如“ma”代表一声的“妈”和四声的“马”),或者使用数字或特定符号表示(如“mā”、“má”、“mǎ”、“mà”)。 5. **处理多音字**:有些汉字有多个读音,根据语境不同而变化。...

    learn_js_regexp:基于示例的精通JavaScript正则表达式的指南

    您还可以从或将其作为Awesome Regex软件包的一部分获得。 请参阅了解其他书籍清单 有关本书的预览,请参见 也可以将书。 如果您对电子书的创建过程感兴趣,请参阅我的博客文章,其中涉及。 有关该书的网络版本,...

    starro-python:打包的目的是通过使用星号屏蔽蒙版,从而将敏感数据误判为虚假属性

    它减少了Regex复杂性固有的大脑过载,使一些命令更接近人类语言。 如何安装? 点数: pip install starro 诗歌: poetry add starro 这个怎么运作? 基本用法 from starro import starro password = "MyP@ssW0r$...

    分离者

    它可能使用了迭代器,字符串查找函数,或者正则表达式库如`<regex>`来识别和分割数据。 3. **内存管理(Memory Management)**: 分离出的子字符串可能被存储在动态分配的数组或向量中。为了高效管理内存,需要考虑...

Global site tag (gtag.js) - Google Analytics