正则表达式

java-正则表达式基础

巧了我就是萌 提交于 2019-12-19 03:21:58
简介 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。 正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。 作用 测试字符串内的模式。例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。 替换文本。可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。 基于模式匹配从字符串中提取子字符串。可以查找文档内或输入域内特定的文本。 java正则 1. java.util.regex Pattern 类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。 Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。 PatternSyntaxException: PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

常用正则表达式规则

允我心安 提交于 2019-12-19 00:17:47
一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 13 非负整数:^\d+$ 或 ^[1-9]\d*|0$ 14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*

Hive书写正则表达式

混江龙づ霸主 提交于 2019-12-18 18:33:33
1. RLIKE 先引入文档中的一段话 NULL if A or B is NULL , TRUE if any ( possibly empty ) substring of A matches the Java regular expression B , otherwise FALSE . For example , 'foobar' RLIKE 'foo' evaluates to TRUE and so does 'foobar' RLIKE '^f.*r$' . 意思是就是 如果两边有null, 那么返回值就是null 没有null的话语java的正则表达式是一样的 例子如下: 'foobar' RLIKE 'foo' --True 'foobar' RLIKE '^f.*r$' --True 2. REGEXP 同样引入文档一句话 Same as RLIKE 那就不多说了~ 下面是一个小案例: 匹配下imei where imei REGEXP '^[a-zA-Z0-9]{14,15}$' 来源: CSDN 作者: 你看我会发光i 链接: https://blog.csdn.net/liyang_007/article/details/103598586

PHP 正则表达式匹配函数 preg_match 与 preg_match_all

断了今生、忘了曾经 提交于 2019-12-18 15:06:15
preg_match() preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。 语法: 1 int preg_match( string pattern, string subject [, array matches ] ) 参数说明: 参数 说明 pattern 正则表达式 subject 需要匹配检索的对象 matches 可选,存储匹配结果的数组, $matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推 例子 1: 1 2 3 4 5 6 7 8 9 <?php if (preg_match( "/php/i" , "PHP is the web scripting language of choice." , $matches )) { print "A match was found:" . $matches [0]; } else { print "A match was not found." ; } 输出: 1 A match was found:PHP 在该例子中,由于使用了 i 修正符,因此会不区分大小写去文本中匹配 php 。 注意: preg_match() 第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜索到subject结尾处

常用的正则表达式:

拥有回忆 提交于 2019-12-18 13:44:52
常用的正则表达式: 数字相关的正则表达式 数字:^[0-9]*$ n位定长的数字:^\d{n}$ m-n位之间的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 正整数:^\d+$ 或 ^[1-9]\d*|0$ 负整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 浮点数:^(-?\d+)(\.\d+

常用的正则表达式

天大地大妈咪最大 提交于 2019-12-18 11:49:21
http://blog.csdn.net/lamyuqingcsdn/article/details/50498249 常用的正则表达式 常用的正则表达式 定义 说明 常用示例 一校验数字的表达式 二校验字符的表达式 三特殊需求表达式 三 钱的输入格式 四其他 定义 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等 说明 1 ^ 匹配字符串开始的位置 2 $ 匹配字符串结束的位置 3 * 匹配前面的子表达式任意次.例如,zo*能匹配”z”,”zo”以及”zoo”. 4 + 匹配前面的子表达式一次或多次(大于等于1次).例如,zo+能匹配”zo”,”zoo”,但不能匹配”z” 5 ? 匹配前面的字表达式零次或一次 常用示例 一、校验数字的表达式 1 数字: ^[0-9]*$ 1 1 2 n位的数字: ^\d{n}$ 1 1 3 至少n位的数字: ^\d{n,}$ 1 1 4 m-n位的数字: ^\d{m,n}$ 1 1 5 零和非零开头的数字: ^(0|[1-9][0-9]*)$ 1 1 6 非零开头的最多带两位小数的数字: ^([1-9][0-9]*)+(.[0-9]{1,2})?$ 1 1 7 带1-2位小数的正数或负数: ^(\-)?\d+(\.\d{1,2

常见的正则表达式,包含只在非空输入时检查合法性

感情迁移 提交于 2019-12-18 11:42:22
//非空验证 requiredReg:/\S/, //姓名验证 nameReg:/^[a-zA-Z\u4e00-\u9fa5]{1,10}[a-zA-Z\u4e00-\u9fa5]{1,10}[\.a-zA-Z\u4e00-\u9fa5]{0,10}$/, //身份证验证 idNoReg:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, //手机号码验证 //mobileReg:/^1[3546789][0-9]{9}$/, //手机号码验证 mobileReg:/^1[3546789][0-9]{9}$/, //手机号码验证 canNullMobileReg:/(^$)|(^1[3546789][0-9]{9}$)/, //邮箱地址验证 emailReg:/^[A-Za-z0-9]+([-_.][A-Za-z0-9]+)*@([A-Za-zd0-9]+[-.])+[A-Za-z0-9]{2,5}$/, //详细地址验证 addressReg:/^[\u4e00-\u9fa5]{1,10}[0-9a-zA-Z\u4e00-\u9fa5\-]{0,20}[\u4e00-\u9fa5]{1,10}[0-9a-zA-Z\u4e00-\u9fa5\-]{0,20}[\u4e00-\u9fa5]{1,10}[0-9a-zA-Z\u4e00-\u9fa5\

java最全的验证类封装

烂漫一生 提交于 2019-12-18 09:58:34
package com.tongrong.utils; import java.util.Collection; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; /** * Java表单验证工具类 * * @author jiqinlin * */ @SuppressWarnings("unchecked") public class RegexUtil { public static void main(String[] args) { // System.out.println("过滤中英文特殊字符: "+RegexUtil.stringFilter("中国~~!#$%%.")); // System.out.println("是否包含中英文特殊字符: "+RegexUtil.isContainsSpecialChar("12")); // System.out.println("过滤html代码: "+RegexUtil.htmltoText("<JAVASCRIPT>12</JAVASCRIPT>DDDDD")); // System.out.println(

python re模块

久未见 提交于 2019-12-18 08:49:26
Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,在文本解析、复杂字符串分析和信息提取时是一个非常有用的工具,使用python的re模块,尽管不能满足所有复杂的匹配情况,但足够在绝大多数情况下能够有效地实现对复杂字符串的分析并提取出相关信息。python 会将正则表达式转化为字节码,利用 C 语言的匹配引擎进行深度优先的匹配。 【1】 元字符:^ $ * + ? {} [] | () \ .表示任意字符 + 对于前一个字符重复1到无穷次 []用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可以理解成或的关系。 ^ 如果放在字符串的开头,则表示取非的意思。[^5]表示除了5之外的其他字符。而如果^不在字符串的开头,则表示它本身。 具有重复功能的元字符: * 对于前一个字符重复0到无穷次 对于前一个字符重复1到无穷次 ?对于前一个字符重复0到1次 {m,n} 对于前一个字符重复次数在为m到n次,其中,{0,} = *,{1,} = , {0,1} = ? {m} 对于前一个字符重复m次 \d 匹配任何十进制数;它相当于类 [0-9]。 \D 匹配任何非数字字符;它相当于类 [^0-9]。 \s 匹配任何空白字符;它相当于类 [ fv]。 \S 匹配任何非空白字符;它相当于类 [^ fv]。

posix标准的正则表达式缺陷

╄→гoц情女王★ 提交于 2019-12-18 02:06:38
posix 标准正则只支持标准和扩展格式的正则,有些高级功能无法实现,比如非贪婪模式,正向断言,没有定界符等等。 可以采用第三方的库来取代。我从网上找了pcre2库,它兼容perl标准的正则表达式。 源码下载地址: https://ftp.pcre.org/pub/pcre 来源: CSDN 作者: echo_hello1 链接: https://blog.csdn.net/weixin_42186805/article/details/103585236