java 正规 忽略,java-正则表达式查找变量并忽略方法
我正在尝试编写一个正则表达式,以查找给定一段JavaScript代码中的所有变量(并且只有变量,完全忽略方法).实际的代码(执行regex的代码)是用Java编写的.
现在,我有这样的事情:
Matcher matcher=Pattern.compile(".*?([a-z]+\w*?).*?").matcher(string);
while(matcher.find()) {
System.out.println(matcher.group(1));
}
因此,当“字符串”的值是变量* func()* 20时
打印输出为:
variable
func
这不是我想要的. (的简单否定是不会的,因为它使regex捕获不必要的字符或将其截断,但仍然捕获函数.现在,我有以下代码:
Matcher matcher=Pattern.compile(".*?(([a-z]+\w*)(\(?)).*?").matcher(formula);
while(matcher.find()) {
if(matcher.group(3).isEmpty()) {
System.out.println(matcher.group(2));
}
}
可以,打印输出正确,但是我不喜欢额外的支票.有任何想法吗?请?
编辑(2011-04-12):
感谢您的所有答案.有问题,为什么我需要这样的东西.您是对的,如果脚本更大,更复杂,唯一明智的解决方案就是解析它们.但是,就我而言,这太过分了.我正在处理的JS报废旨在成为简单的公式,例如(a b)/ 2.没有注释,字符串文字,数组等.只有变量和(可能)一些内置函数.我需要变量列表来检查它们是否可以初始化,以及这一点(并已全部初始化).我意识到,所有这些操作也可以使用RPN手动完成(这会更安全),但是这些公式将被更大的脚本包装并在Web浏览器中进行评估,因此这种方式更加方便.
这可能有点肮脏,但是假设谁正在编写这些公式(在大多数情况下可能是我),知道正在做什么并且能够检查它们是否正常工作.
如果有人发现这个问题,想要做类似的事情,现在应该冒风险/困难.我愿意,至少我希望如此;)
java 正规 忽略,java-正则表达式查找变量并忽略方法相关推荐
- java qq验证_JAVA正则表达式校验qq号码的方法
导读 正文 Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. 正则表达式实例 一个字符串其 ...
- java特殊字符转义字符_Java正则表达式处理特殊字符转义的方法
正则需要转义字符 '$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|' 异常现象: java.util.regex ...
- asteroids模板 游戏 java_在高级Java游戏中存储全局/静态变量的最佳方法是什么?...
有一个原因是不经常使用静态字段,原因是静态字段的灵活性不如非静态字段,因为静态字段只能有一个副本,但非静态字段可以容纳每个对象实例的值不同. 通过使用静态字段,您将限制自己只有一个玩家.如果你想做多人 ...
- Java标识符(类名、变量名、方法名、接口名、包名)命名的一般规则
Java标识符的概念以及命名约定 标识符是那些可以起自定义的符号名都叫标识符,在Java中例如:类名.变量名.方法名.接口名.包名等等. 标识符的命名规则(不按这些规则命名会导致程序错误,编译不通过) ...
- java 正则表达式 查找数字
正则表达式 查找数字 数字相关的常用语法: \d 数字字符匹配.等效于 [0-9]. \D 非数字字符匹配.等效于 [^0-9]. [xyz] 字符集.匹配包含的任一字符.例如,"[abc] ...
- Java 过滤特殊字符的 正则表达式
Java正则表达式学习: 因为正则表达式是一个很庞杂的体系,此例仅举些入门的概念,更多的请参阅相关书籍及自行摸索. \\ 反斜杠 \t 间隔 ('\u0009') \n 换行 ('\u000A') \ ...
- Java过滤特殊字符的正则表达式
在网上找了好久也没找到个合适的正则表达式以过滤特殊字符:自己学习了下,写了两个,实现要求. Java代码 // 过滤特殊字符 public static String StringFilt ...
- java 正则 实例_Java正则表达式实例详解
创建正则表达式 你可以从比较简单的东西入手学习正则表达式.要想全面地掌握怎样构建正则表达式,可以去看JDK 文档的java.util.regex 的Pattern 类的文档. 字符 B 字符B \xh ...
- java流与文件——正则表达式
[0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--正则表达式 的相关知识: 0.2) there are my original sou ...
最新文章
- windows server r2 之如何设置共享文件夹访问不需要输入用户名和密码
- Android Studio 代码混淆
- php伪静态函数,PHP写的U()函数,结合伪静态做seo优化
- EPI_H/EPI_V(边缘保持指数,matlab 矢量化编程)
- 很火的娇喘整蛊源码(带演示站)
- 关于成型滤波器实现方式的简单比较
- lcl手术和飞秒区别_全飞秒、半飞秒、ICL、TPRK...教你分清近视手术区别
- iOS 谷歌地图及路线规划
- PLC(可编程逻辑控制器)
- python-类(class)是什么?怎么用?
- 7月书讯(下)| 宝藏新书助你“乘风破浪”
- Already included file name
- 本地网络环境测试工具,很不错的工具
- 史上最全mysql日期计算(月初、月末、上中下旬判断、年初、年末、季初、季末)
- Ubuntu18.04新手架设网站全过程
- 小知识:Java中冒号(:)有哪些用法?
- 王者服务器维护7月九号,6月9日体验服停机更新公告
- PyQt5 实现矩阵计算器
- c语言中有余数的除法,《有余数的除法》课堂实录
- 如何在BNB链上创建BEP-20通证
热门文章
- 19、Fragment
- Spring WebSocket初探2 (Spring WebSocket入门教程)
- 基于百度地图js进行地理定位
- .net c# 中获得GridView的EmptyDataTemplate中的控件的方法(转)
- 基于ARM9的视频采集传输系统
- get_metrology_object_result_contour查询计量对象的结果轮廓
- 扒一扒工业机器人编程语言和种类
- 学习笔记(47):Python实战编程-pack布局
- 突然不能 ip访问服务器文件夹,用友U8 工作站连接不到服务器,ping IP及服务器名都正常,访问服务器共享文件夹也正常...
- mysql皮秒转成年月日时分秒_MySQL performance_schema 中 TIMER_*类字段 的易读转换