精华内容
下载资源
问答
  • 更新2每个标识符必须至少包含一个字符。...简而言之,标识符是从字母,数字下划线或美元符号中选择一个或多个字符。唯一限制是第一个字符不能是数字。所以,你最好使用String pattern = "(?:\\b[_a-zA...

    更新2

    每个标识符必须至少包含一个字符。

    必须从以下字符中选择第一个字符:字母,下划线或美元符号。第一个字符不能是数字。

    其余字符(除第一个外)可以来自:字母,数字,下划线或美元符号。换句话说,它可以是任何有效的标识符字符。

    简而言之,标识符是从字母,数字,下划线或美元符号中选择的一个或多个字符。唯一的限制是第一个字符不能是数字。

    所以,你最好使用

    String pattern = "(?:\\b[_a-zA-Z]|\\B\\$)[_$a-zA-Z0-9]*+";

    更新

    所以,你可以使用

    String pattern = "\\b[_a-zA-Z][_a-zA-Z0-9]*\\b";

    注意它允许_______。

    您可以使用

    String p = "\\b_*[a-zA-Z][_a-zA-Z0-9]*\\b";

    为了避免这种情况。请参阅IDEONE demo。

    String s = "(identifier1 identifier_2 23 4) ____ 33";

    String p = "\\b_*[a-zA-Z][_a-zA-Z0-9]*\\b";

    System.out.println(s.replaceAll(p, "$0#"));

    输出:(identifier1# identifier_2# 23 4) ____ 33

    OLD ANSWER

    您可以使用以下模式:

    String p = "\\b(?!\\d+\\b)[A-Za-z0-9]+(?:_[A-Za-z0-9]+)*\\b";

    或(如果_可以出现在最后):

    String p = "\\b(?!\\d+\\b)[A-Za-z0-9]+(?:_[A-Za-z0-9]*)*\\b";

    模式要求整个单词(因为表达式用单词边界\b括起来)不应该等于数字(用(?!\d+\b)检查),以及展开的部分{{ 1}}匹配非下划线字符块,后跟零序或多个下划线序列,后跟非下划线字符块。

    [A-Za-z0-9]+(?:_[A-Za-z0-9])*

    输出:String s = "(identifier1 identifier_2 23 4) ____ 33";

    String p = "\\b(?!\\d+\\b)[A-Za-z0-9]+(?:_[A-Za-z0-9]*)*\\b";

    System.out.println(s.replaceAll(p, "$0#"));

    展开全文
  • (我用无望正则表达式(我不能在这个时候换我周围的头),我发现了几个regulair expresions,并用它来进行以下操作:使用正则表达式,如何找到不包含美元和下划线的最后一个字母字符$sName=" $stackOverFlow *^ %";...

    Iam试图从字符串中获取最后一个字/字符(==字母数字)。 (我用无望正则表达式(我不能在这个时候换我周围的头),我发现了几个regulair expresions,并用它来进行以下操作:使用正则表达式,如何找到不包含美元和下划线的最后一个字母字符

    $sName=" $stackOverFlow *^ %";

    $iNameBegin=0;

    if (preg_match_all('/(\pL)\PL*$/u', $sName, $matches, PREG_OFFSET_CAPTURE) > 0) {

    $lastMatch = $matches[0][count($matches[0])-1];

    $sName=substr($sName,0,$lastMatch[1]+1);

    }

    if (preg_match_all('/[\W*$]/', $sName, $matches, PREG_OFFSET_CAPTURE) > 0) {

    $lastMatch = $matches[0][count($matches[0])-1];

    $iNameBegin=$lastMatch[1]+1;

    }

    $sName=substr($sName,$iNameBegin);

    其中一期工程...:

    strRpos找到最后字母字符(第一个if语句)在$ SNAME

    切断$ SNAME在这个位置

    使用strRpos找到最后非字母字符在切断字符串(第二个if语句)从最后非字母字符的POS

    截止$ SNAME

    这工作,但我需要看到美元符号$作为一个字母字符(以及“_”,但是这已经发生)。总之,我想要找到的名称是“$ stackoverflow”,而不是“stackoverflow”

    现在我花了很多时间搜索答案,甚至考虑finaly读入正则表达式来理解和使我自己(但我没有时间/精神去做几个小时的atm)。所以也许有人可以告诉我如何看到美元符号作为一个字母字符,也许是从字符串中得到最后一个字母数字字符/字符的方法

    +0

    那么你想要的最后一个字符是字母不或'$'或'_'?或者是字母数字的最后一个字符? –

    +0

    你的意思是'字母数字'还是'字母'? –

    +0

    是不是字母数字或“&”“_”的最后一个字符 –

    展开全文
  • 只有字母、数字下划线且不能以下划线开头和结尾的正则表达式:^(!_)(!.*_$)[a-zA-Z0-9_]+$只有字母和数字的:^[a-zA-Z0-9_]+$2.至少一个汉字、数字、字public boolean is_number(String number) {if(number==null)...

    [1. 只有字母、数字和下划线且不能以下划线开头和结尾的正则表达式:^(!_)(!.*_$)[a-zA-Z0-9_]+$      只有字母和数字的: ^[a-zA-Z0-9_]+$  2. 至少一个汉字、数字、字

    public boolean is_number(String number) {

    if(number==null) return false;

    return number.matches("[+-]?[1-9]+[0-9]*(\\.[0-9]+)?");

    }

    public boolean is_alpha(String alpha) {

    if(alpha==null) return false;

    return alpha.matches("[a-zA-Z]+");

    }

    public boolean is_chinese(String chineseContent) {

    if(chineseContent==null) return false;

    return chineseContent.matches("[\u4e00-\u9fa5]");

    }

    [各种字符的unicode编码的范围:汉字:[0x4e00,0x9fa5](或十进制[19968,40869])数字:[0x30,0x39](或十进制[48, 57])小写字母:[0x61,0x7a](或十进制[97, 122])大写

    展开全文
  • 一、需求:密码必须是包含大写字母、小写字母、数字、特殊符号(不是字母,数字下划线,汉字字符)8位以上组合二、方案:利用正则表达式来校验三、思路:排除法1、排除大写字母、小写字母、数字、特殊符号中1种...

    本文最后更新于2019-10-25,已超过 1年没有更新,如果文章内容、图片或者下载资源失效,请留言反馈,我会及时处理,谢谢!

    温馨提示:本文共1957个字,读完预计5分钟。

    一、需求:密码必须是包含大写字母、小写字母、数字、特殊符号(不是字母,数字,下划线,汉字的字符)的8位以上组合

    二、方案:利用正则表达式来校验

    三、思路:排除法

    1、排除大写字母、小写字母、数字、特殊符号中1种组合、2种组合、3种组合,那么就只剩下4种都包含的组合了

    2、表达式为:^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$

    3、拆分解释:其中(2)-(6)运用了零宽断言、环视等正则功能

    (1)^匹配开头

    (2)(?![A-Za-z0-9]+$)匹配后面不全是(大写字母或小写字母或数字)的位置,排除了(大写字母、小写字母、数字)的1种2种3种组合

    (3)(?![a-z0-9\\W]+$)同理,排除了(小写字母、数字、特殊符号)的1种2种3种组合

    (4)(?![A-Za-z\\W]+$)同理,排除了(大写字母、小写字母、特殊符号)的1种2种3种组合

    (5)(?![A-Z0-9\\W]+$)同理,排除了(大写字母、数组、特殊符号)的1种2种3种组合

    (6)[a-zA-Z0-9\\W]匹配(小写字母或大写字母或数字或特殊符号)因为排除了上面的组合,所以就只剩下了4种都包含的组合了

    (7){8,}8位以上

    (8)$匹配字符串结尾

    四、代码:

    public class RegexTest {

    public static final String PW_PATTERN = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$";

    public static void main(String[] args) {

    String pw1 = "ABCDEFGHIG";

    String pw2 = "abcdefghig";

    String pw3 = "0123456789";

    String pw4 = "!@#$%^&*()";

    String pw5 = "ABCDEabcde";

    String pw6 = "ABCDE01234";

    String pw7 = "ABCDE!@#$%";

    String pw8 = "abcde01234";

    String pw9 = "abcde!@#$%";

    String pw10 = "01234!@#$%";

    String pw11 = "abcde01234!@#$%";

    String pw12 = "ABCDE01234!@#$%";

    String pw13 = "ABCDEabcde!@#$%";

    String pw14 = "ABCDEabcde01234";

    String pw15 = "Aa0!";

    //符合要求密码

    String pw16="ABCabc012!@#";

    System.out.println(pw1.matches(PW_PATTERN));

    System.out.println(pw2.matches(PW_PATTERN));

    System.out.println(pw3.matches(PW_PATTERN));

    System.out.println(pw4.matches(PW_PATTERN));

    System.out.println(pw5.matches(PW_PATTERN));

    System.out.println(pw6.matches(PW_PATTERN));

    System.out.println(pw7.matches(PW_PATTERN));

    System.out.println(pw8.matches(PW_PATTERN));

    System.out.println(pw9.matches(PW_PATTERN));

    System.out.println(pw10.matches(PW_PATTERN));

    System.out.println(pw11.matches(PW_PATTERN));

    System.out.println(pw12.matches(PW_PATTERN));

    System.out.println(pw13.matches(PW_PATTERN));

    System.out.println(pw14.matches(PW_PATTERN));

    System.out.println(pw15.matches(PW_PATTERN));

    System.out.println(pw16.matches(PW_PATTERN));

    }

    }

    输出结果除最后一行外全是false,即只有最后一个密码是符合要求的

    展开全文
  • java-用于验证用户名的正则表达式我正在尝试创建一个正则表达式来根据以下条件验证用户名:仅包含字母数字字符,下划线和点。下划线和点不能在结尾或用户名开头(例如user__name/user..name/.username/username.)。...
  • 一、需求:密码必须是包含大写字母、小写字母、数字、特殊符号(不是字母,数字下划线,汉字字符)8位以上组合 二、方案:利用正则表达式来校验 三、思路:排除法  1、排除大写字母、小写字母、数字、特殊...
  • 要求:用户名:必须是6-10位字母、数字下划线(这里字母、数字下划线是指任意组合,没有必须三类均包含)不能以数字开头密码:必须是6-20位字母、数字下划线(这里字母、数字下划线是指任意组合,没有必须三...
  • 要求:用户名:必须是6-10位字母、数字下划线(这里字母、数字下划线是指任意组合,没有必须三类均包含)不能以数字开头密码:必须是6-20位字母、数字下划线(这里字母、数字下划线是指任意组合,没有必须三...
  • 一、需求:密码必须是包含大写字母、小写字母、数字、特殊符号(不是字母,数字下划线,汉字字符)8位以上组合 二、方案:利用正则表达式来校验 三、思路:排除法  1、排除大写字母、小写字母、数字、特殊...
  • 要求:用户名:必须是6-10位字母、数字下划线(这里字母、数字下划线是指任意组合,没有必须三类均包含)不能以数字开头密码:必须是6-20位字母、数字下划线(这里字母、数字下划线是指任意组合,没有必须三...
  • java 正则表达式

    2011-06-26 18:01:16
    JAVA正则表达式语法(转)正则表达式语法正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配一个或多个字符串。正则表达式示例表达式 ...
  • 一、需求:密码必须是包含大写字母、小写字母、数字、特殊符号(不是字母,数字下划线,汉字字符)8位以上组合 二、方案:利用正则表达式来校验 三、思路:排除法  1、排除大写字母、小写字母、数字、特殊...
  • 一、需求:密码必须是包含大写字母、小写字母、数字、特殊符号(不是字母,数字下划线,汉字字符)8位以上组合二、方案:利用正则表达式来校验三、思路:排除法1、排除大写字母、小写字母、数字、特殊符号中1种...
  • JAVA正则表达式如何写

    2015-04-16 15:15:12
    必须由:字母数字下划线美元符组成, 必须有大写英文字母, 数字或字母不能出现三连续含3连续, 不能以数字开头) */ public class Zz{ public static void main(String args[]){ Numb(); } public ...
  • 这次给大家带来使用正则验证密码强度(俩种方式附...方案1 (简单)假设密码验证做如下规则定义:最短6位,最长16位 {6,16}可以包含小写大母 [a-z] 和大写字母 [A-Z]可以包含数字 [0-9]可以包含下划线 [ _ ] 和减号 [ ...
  • 用户名可能包含中文,中文按2位算源码下载地址:http://www.zuidaima.com/share/1550463222516736.htm1.[代码]验证用户名,支持中英文(包括全角字符)、数字下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位...
  • 25 匹配由数字、26个英文字母或者下划线组成字符串; java源码: /* * Created on 2005-4-15 * * Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * ...
  • 包含字母数字字符,下划线和点.>下划线和点不能在最后或用户名开头(例如_username / username_ / .username / username.).>下划线和点不能彼此相邻(例如user_.name).> Underscore或dot不能连续多次使用...
  • 要求:用户名:必须是6-10位字母、数字下划线(这里字母、数字下划线是指任意组合,没有必须三类均包含)不能以数字开头密码:必须是6-20位字母、数字下划线(这里字母、数字下划线是指任意组合,没有必须三...
  •  只能包含字符、数字下划线。  验证是否含有^%&'',;=?$"等字符:“[^%&'',;=?$x22]+”  只能输入汉字:“^[u4e00-u9fa5],{0,}$”  验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”  验证...
  • 1 .... 密码强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。 ^(?=.*\\d)(?=.*[a-z])(?...3. 由数字、26个英文字母或下划线组成字符串 ^\\w+$ 4. 校验E-MAIl 地址
  • 再就是jdk API中提供的java.util.regex.Pattern类中对\w能够匹配字符说明是 单词字符:[a-zA-Z_0-9] 和你推荐那篇文章中说明有所出入(这几天学习正则表达式看资料就是你提供那篇文章)。文章中\w 能够...
  • 1、校验密码强度密码强度必须...=.*[A-Z]).{8,10}$2、校验中文字符串只能是中文^[\\u4e00-\\u9fa5]{0,}$3、由数字,26个英文字母或下划线组成字符串^\\w+$4、校验E-Mail 地址[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\...
  • 必须是6-20位字母、数字下划线(这里字母、数字下划线是指任意组合,没有必须三类均包含) 效果展示: package cn.zyq.Aug05; import java.util.Scanner; public class Demo1 { pu...
  • 正则表达式数字验证

    2012-11-13 08:07:27
    //java正则表达式数字验证 public boolean isNumber(String str) { java.util.regex.Pattern pattern=java.util.regex.Pattern.compile("[0-9]+(.[0-9]+)?"); java.util.regex.Matcher match=pattern.matcher...
  • Java - 正则表达式 - Pattern - Matcher

    万次阅读 2013-08-21 14:35:01
    普通字符(字母,数字,汉字,下划线) 一个普通字符在表达式中只匹配与之相同一个字符 表达式k在字符串sky进行匹配时,将匹配成功 \r,\n,\t,\f 表示回车符,换行符,制表符,换页符 [ ] 一个可选字符组,表示包含一...
  • 至少包含字母、数字下划线_、中划线-中两种 正则表达式: js表达式: ^(?!^[\d]+$)(?!^[-]+$)(?!^[_]+$)(?!^[a-zA-Z]+$)[\w-]{6,30}$ java表达式-字符串: "^(?!^[\\d]+$)(?!^[-]+$)(?!^[_]+$)(?!^[a-zA-Z]+$...
  • 文章目录判断字符串是不是数字传统写法正则表达式实现正则表达式历史常用的正则标记1单个字符匹配2字符范围(未加入任何量词描述,只表示1位)指定字母集合中任意一个字符不包含指定字母(反)匹配a-z A-Z所有...
  • 正则表达式整理

    2019-06-03 15:53:25
    *import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestRe { ... //用户名 密码(以字母开头,长度在6~18之间,只能包含字母、数字下划线) String userName = "121a...
  • 用户名格式:由字母数字下划线组成且开头必须是字母,不能超过16位;2.密码格式:字母和数字构成,不能超过16位;3.昵称:字母和数字构成长度大于6小于10;4.手机号:全数字,长度为11位;5.邮箱:必须包含@符号;...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

java正则包含下划线的数字

java 订阅