我正在尝试编写一个正则表达式,以查找给定一段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-正则表达式查找变量并忽略方法相关推荐

  1. java qq验证_JAVA正则表达式校验qq号码的方法

    导读 正文 Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. 正则表达式实例 一个字符串其 ...

  2. java特殊字符转义字符_Java正则表达式处理特殊字符转义的方法

    正则需要转义字符 '$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|' 异常现象: java.util.regex ...

  3. asteroids模板 游戏 java_在高级Java游戏中存储全局/静态变量的最佳方法是什么?...

    有一个原因是不经常使用静态字段,原因是静态字段的灵活性不如非静态字段,因为静态字段只能有一个副本,但非静态字段可以容纳每个对象实例的值不同. 通过使用静态字段,您将限制自己只有一个玩家.如果你想做多人 ...

  4. Java标识符(类名、变量名、方法名、接口名、包名)命名的一般规则

    Java标识符的概念以及命名约定 标识符是那些可以起自定义的符号名都叫标识符,在Java中例如:类名.变量名.方法名.接口名.包名等等. 标识符的命名规则(不按这些规则命名会导致程序错误,编译不通过) ...

  5. java 正则表达式 查找数字

    正则表达式 查找数字 数字相关的常用语法: \d 数字字符匹配.等效于 [0-9]. \D 非数字字符匹配.等效于 [^0-9]. [xyz] 字符集.匹配包含的任一字符.例如,"[abc] ...

  6. Java 过滤特殊字符的 正则表达式

    Java正则表达式学习: 因为正则表达式是一个很庞杂的体系,此例仅举些入门的概念,更多的请参阅相关书籍及自行摸索. \\ 反斜杠 \t 间隔 ('\u0009') \n 换行 ('\u000A') \ ...

  7. Java过滤特殊字符的正则表达式

    在网上找了好久也没找到个合适的正则表达式以过滤特殊字符:自己学习了下,写了两个,实现要求. Java代码   // 过滤特殊字符 public   static   String StringFilt ...

  8. java 正则 实例_Java正则表达式实例详解

    创建正则表达式 你可以从比较简单的东西入手学习正则表达式.要想全面地掌握怎样构建正则表达式,可以去看JDK 文档的java.util.regex 的Pattern 类的文档. 字符 B 字符B \xh ...

  9. java流与文件——正则表达式

    [0]README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件--正则表达式 的相关知识: 0.2) there are my original sou ...

最新文章

  1. windows server r2 之如何设置共享文件夹访问不需要输入用户名和密码
  2. Android Studio 代码混淆
  3. php伪静态函数,PHP写的U()函数,结合伪静态做seo优化
  4. EPI_H/EPI_V(边缘保持指数,matlab 矢量化编程)
  5. 很火的娇喘整蛊源码(带演示站)
  6. 关于成型滤波器实现方式的简单比较
  7. lcl手术和飞秒区别_全飞秒、半飞秒、ICL、TPRK...教你分清近视手术区别
  8. iOS 谷歌地图及路线规划
  9. PLC(可编程逻辑控制器)
  10. python-类(class)是什么?怎么用?
  11. 7月书讯(下)| 宝藏新书助你“乘风破浪”
  12. Already included file name
  13. 本地网络环境测试工具,很不错的工具
  14. 史上最全mysql日期计算(月初、月末、上中下旬判断、年初、年末、季初、季末)
  15. Ubuntu18.04新手架设网站全过程
  16. 小知识:Java中冒号(:)有哪些用法?
  17. 王者服务器维护7月九号,6月9日体验服停机更新公告
  18. PyQt5 实现矩阵计算器
  19. c语言中有余数的除法,《有余数的除法》课堂实录
  20. 如何在BNB链上创建BEP-20通证

热门文章

  1. 19、Fragment
  2. Spring WebSocket初探2 (Spring WebSocket入门教程)
  3. 基于百度地图js进行地理定位
  4. .net c# 中获得GridView的EmptyDataTemplate中的控件的方法(转)
  5. 基于ARM9的视频采集传输系统
  6. get_metrology_object_result_contour查询计量对象的结果轮廓
  7. 扒一扒工业机器人编程语言和种类
  8. 学习笔记(47):Python实战编程-pack布局
  9. 突然不能 ip访问服务器文件夹,用友U8 工作站连接不到服务器,ping IP及服务器名都正常,访问服务器共享文件夹也正常...
  10. mysql皮秒转成年月日时分秒_MySQL performance_schema 中 TIMER_*类字段 的易读转换