本文目录
JAVA正则表达式
***隐藏网址***匹配双字节字符(包括汉字在内):应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){return this.replace(/g,"aa").length;}匹配空行的正则表达式:\n*\r匹配HTML标记的正则表达式:/《(.*)》.*《\/\1》|《(.*) \/》/ 匹配首尾空格的正则表达式:(^\s*)|(\s*$)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:String.prototype.trim = function(){return this.replace(/(^\s*)|(\s*$)/g, "");}利用正则表达式分解和转换IP地址:下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:function IP2V(ip){re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式if(re.test(ip)){return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1}else{throw new Error("Not a valid IP address!")}}不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:var ip="10.100.20.168"ip=ip.split(".")alert("IP值是:"+(ip*1))匹配Email地址的正则表达式:\w+(\w+)****隐藏网址***利用正则表达式去除字串中重复的字符的算法程序:var s="abacabefgeeii"var s1=s.replace(/(.).*\1/g,"$1")var re=new RegExp("","g")var s2=s.replace(re,"") alert(s1+s2) //结果为:abcefgi我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1***隐藏网址***s=s.replace(/(.*\/){0,}(+).*/ig,"$2")alert(s)利用正则表达式限制网页表单里的文本框输入内容:用正则表达式限制只能输入中文:onkeyup="value=value.replace(//g,’’))"用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(//g,’’))"用正则表达式限制只能输入数字:onkeyup="value=value.replace(//g,’’))"用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(//g,’’))" 出处:蓝色理想 前一段时间写了2段EmEditor的宏,用来统计代码行数和简单的规约检查,稍微整理一下,下面是从EmEditor的Q&A的提取的实例:双引号包含的字符串strings surrounded by double-quotation marks“.*?” 包含的字符串strings surrounded by \ 变量名variable names* IP 地址IP addresses({1,3}) 网页地址URL(\S+)://(*)(#(\S+))? 各行Tab以后的文字列lines followed by a tab\t.*$ 平仮名 ひらがなHiragana 全角片仮名 全角カタカナFull-width Katakana 半角仮名 半角カナHalf-width Kana 中日韩 汉字CJK ideographs 中日韩 汉字符号CJK ideograph marks 韩国字符Hangul 行头插入 //Insert // at start of linesFind: ^Replace with: // 删除行头 //Remove // at end of linesFind: ^//Replace: 删除行后的空白文字(包含空格和制表位 Space+Tab)Remove trailing whitespacesFind: \s+?$Replace with: 将(abc)替换为Replace (abc) with Find: \((.*?)\)Replace: \ 将《H3 …》替换为《H4 …》Replace 《H3 …》 with 《H4 …》Find: 《H3(.*?)》Replace: 《H4\1》 将9/13/2003替换为2003年9月13日Replace 9/13/2003 with 2003.9.13Find: ({2,4})Replace: \3年\1月\2日 将字母a-z替换为大写字母Uppercase characters from a to zFind: Replace: \U\0 首字母大写Capitalize all wordsFind: (*)Replace: \U\1\L\2
java中正则表达式是什么
计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。Java正则表达式入门***隐藏网址***
java编程基础 正则表达式
//必须十一位数,包括数字和字母,且以字母开头Pattern pattern = Pattern.compile("^{10}$");//将给定的正则表达式编译到模式中//判读存款金额是否合法(单次存款金额不超过10000元(包括),且必须是100的整数倍)Pattern pattern = Pattern.compile("^{0,1}00$|^10000$");//判断取款金额是否合法(单次取款金额不超过3000(包括)元,且必须是100的整数倍.)Pattern pattern = Pattern.compile("^{0,1}00$");
新手java正则表达式求助
Java正则表达式 《a.*?title=\"(.+?)\" 取第一捕获组的数据
完整的Java程序如下
import java.util.regex.Matcher;import java.util.regex.Pattern;public class HH { public static void main(String args) { String str="《li》 《a href=\"/article/47608.html\" title=\"标题文档\" target=\"_blank\"》"; String regex="《a.*?title=\"(.+?)\""; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(str); while(m.find()){ System.out.println(m.group(1)); } }}运行结果标题文档
java正则表达式怎么书写
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
下面介绍具体的方法。
1、步骤一 : 新建一个工程和类
我们在这个类中开发相关的代码,先看看 java.util.regex 这个包吧。
2、步骤二 : 类 Pattern 的使用
类Pattern , 其一个对象就代表一种指定的正则表达式,我们通过这个类和一些正则表达式的规则来生成自己想要的字符串匹配规则!
这个类,你无法通过 new 来创建对象,其提供了一个静态方法 compile("正则规则串")来创建对象, 比如我们想要一个以 "java" 开头的字符串匹配规则,我们会用如下代码 Pattern 对象 :
Pattern pattern = Pattern.compile("^java");
注意 : ^ 这个符号是正则表达式中的规则,表示字符串的开头!关于其他规则,我们后面会有相关经验给大家逐一介绍!
3、步骤三 : 类 Matcher 的使用
类 Matcher, 代表一个串在特定Pattern对象下的匹配结果,我们通过这个结果可以知道这个串是否符合我们的要求 (我们的具体要求在 Pattern 对象中体现!)。使用方法为 :
// 先构建一个特定的 Pattern 对象Pattern pattern = Pattern.compile("^java"); // 调用 Pattern 对象的 matcher 方法,传入一个串,得到匹配结果!Matcher matcher = javaPrefixPattern.matcher("一个字符串");
4、步骤四 : 测试和总结
运行代码,查看程序运行效果!正则表达式的整个使用框架就是这样,其不同的应用场景基本就是不同的匹配规则!
总结 :正则表达式的彪悍,主要在于其很多成熟的规范的语义规则,通过这些规则的灵活使用,我们可以把一种复杂的匹配需求用一个规则串表达出来!
java正则表达式的使用
Java 正则表达式和 Perl 的是最为相似的,正则表达式就是规则表达式。Java中正则表达式与之前使用的Python是有区别的,区别在于Java对于反斜线(\)处理的不同。 在Python中”\d”表示 匹配一位数字(0-9),而Java中匹配一位数字(0-9),需要的正则表达式为”\\d”。 不过换行符和制表符只需要单反斜线“\n\t”。正则表达式定义了字符串的模式。可以用来搜索、或处理文本。不仅限于某一种语言,但是在每种语言中有细微的差别。
正则表达式 java
1、java中"\"(斜杠)不能单独出现,必须以"\\"(双斜杠)的形式使用。
2、对于正则中有特殊含义的字符需要转义后才能按照原始的含义使用(java中在其前添加"\\")
3、对于字符串中的双斜杠(不作为正则表达式的)在匹配时需要按照双斜杠来匹配。
4、实现代码如下:
String string = "C:\\Program Files"; String reg = "^\\s*\\+\\W?)+$";
System.out.println (string.matches (reg));