java正则表达式下划线_用于标识符的Java正则表达式(字母,数字和下划线)
更新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#"));
java正则表达式下划线_用于标识符的Java正则表达式(字母,数字和下划线)相关推荐
- java 正则表达式的包_用于Java包名称的Python正则表达式
我在使用 Python确定有效的Java包名称时遇到问题.这是代码: packageName = "com.domain.lala" # valid, not rejected - ...
- c语言规定 标识符由,【填空题】C语言的标识符命名规则规定标识符可以由字母数字和下划线组成,首字符不能是 。 (4.0分)...
[填空题]C语言的标识符命名规则规定标识符可以由字母数字和下划线组成,首字符不能是 . (4.0分) 更多相关问题 鱼苗池的选择要利于鱼苗生长.利于饲养管理和()A. 鱼苗游动B. 水生生物生长C. ...
- java 数字 下划线_为什么要在Java SE 7的数字中使用下划线-在数字文字中使用下划线...
java 数字 下划线 JDK 1.7发行版引入了几个有用的功能,尽管其中大多数都是语法糖,但使用该功能可以大大提高可读性和代码质量. 这样的功能之一是在数字文字中引入下划线 . 从Java 7开始, ...
- java判断颜色合法_判断颜色是否合法的正则表达式(详解)
判断颜色是否合法的正则表达式(详解) "^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$"; 意思是:以#开头,后面是数字和a-f的字符(大写或小写),这个值是 ...
- java 基础 笔试题_非常全面的java基础笔试题
1.下列说法正确的是() (程序结构) A java程序的main方法必须写在类甩面 B java程序中可以有多个main方法 C.java程序中类名必须与文件名一样 D.JAVA程序的main方法中 ...
- java list e 查找_源码(04) -- java.util.ListE
java.util.List 源码分析(JDK1.7) ------------------------------------------------------------------------ ...
- java面试32问_学员分享:JAVA面试32问(11-20)
第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? short s1 = 1; s1 = s1 + 1;有错,s1是shor ...
- java主要内存区域_可能是把Java内存区域讲的最清楚的一篇文章
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种方式(句柄 ...
- java byte 判断相等_你真的了解Java中quot;==quot;和equals()的区别?
部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA 密码:jsam 想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复" ...
最新文章
- Nature撤稿!三年前微软在量子计算上的巨大胜利终究是个错误
- 学习笔记 mysql_MySQL 学习笔记
- 途牛网站无线架构变迁实践
- 超详细百家大厂面试资料,免费送!
- BZOJ2956 (模积和)
- C和指针之数组编程练习5 (矩阵相乘)
- Angular实现dialog对话框封装
- Solaris11 磁盘分区
- Struts2第三篇【Action开发方式、通配符、Struts常量、跳转全局视图、action节点默认配置】...
- Java学完哪些内容能够出去找工作
- c语言mergesort 参数,求教关于归并排序MergeSort()的问题
- CISSP国际注册信息系统安全专家
- 微信小游戏是个人尝试做游戏最好的选择
- java 向量 内积_向量内积外积
- Makefile与前缀后缀相关函数suffix、basename、addsuffix、addprefix
- 怎么记账,记录日常收支
- 用python画皮卡丘的代码-利用Python绘制萌萌哒的皮卡丘
- html的slider位置调整,ios设置UISlider的起始位置和增量
- Golang 在linux中新建用户
- Life Long Learning论文阅读记录之LwF
热门文章
- 平板N710无限重启解决办法——包括恢复出厂设置的办法
- 计算机考研1000题pdf,2020考研张宇1000题(数一、二、三全).pdf
- 微信首页登录html页面,H5页面接入微信授权登录和分享
- python优秀代码写法笔记
- IoU(Intersection over Union)
- 关于使用Intellij Idea时java系统找不到指定文件的解决方案
- Oracle中有dateadd吗,oracle dateadd的函数有哪些?
- 高性能架构学习路线图-分布式架构演进
- 全款房抵押贷款要注意什么?
- Office 365 批量创建用户