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浏览器中进行评估,因此这种方式更加方便.

这可能有点肮脏,但是假设谁正在编写这些公式(在大多数情况下可能是我),知道正在做什么并且能够检查它们是否正常工作.

如果有人发现这个问题,想要做类似的事情,现在应该冒风险/困难.我愿意,至少我希望如此;)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【吐槽】博客园新的原创文章在搜索引擎的排名不及转载的站点

最近写博客比较多,但发现文章被一些网站转载后,排名比博客园的链接还要高,有些搜索引擎甚至连博客园的链接都没有,坑爹,坑爹。。。 以前博客园的网友也遇到过类似的情况,也分享过一些防转载的经验&#xff…

Qt之程序发布以及打包成exe安装包

一、简述 Qt项目开发完成之后,需要打包发布程序,而因为用户电脑上没有Qt配置环境,所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中,然后再用 Inno Setup打包工具 打包成一个exe安装包,就可以发布了…

把ASP应用中的Session传递给asp.net应用

ASP.NET APPLICATION要使用原来的ASP用户系统,于是问题出现了,ASP APPLICATION怎样才能让用户登录的状态及用户信息在ASP.NET中依然有效呢。于是我们考虑用构造FORM来自动提交传递ASP应用中的Session变量。例子如下ASP应用URL为http://127.0.0.1/asp/&am…

linux下生成key

linux下生成key 使用public/private key让putty(ssh)自动登录(以及linux上使用密钥做ssh自动登陆) 方法一:使用puttygen.exe 第一步:生成密匙 运行puttygen.exe,选择需要的密匙类型和长度,使用默认的SSH2(R…

php获取字符串扩展,PHP7扩展开发之字符串处理

标签:本文和大家分享的主要是PHP7扩展开发中字符串的处理相关知识,希望通过本文的分享能帮助大家更好的学习php。这次,我们来看看字符串在PHP扩展里面如何处理。示例代码如下:$len strlen($prefix);$substr substr($string, 0, …

使用Nginx+WordPress搭建个人网站

背景 很多研究技术的朋友喜欢写博客。如果希望搭建一个完全属于自己的网站,也并不困难。这里简要分享一下我搭建这个博客网站的经验。 关键步骤 购买服务器、域名、DNS云解析服务网站备案(可选)安装NginxWordPressMySQLPHP配置WordPress运行网…

UNION ALL returning wrong results?

有应用人员反映某套Linux上的11.2.0.1数据库系统中出现了UNION ALL后返回的结果集不正确的问题,我们具体分析下出现问题的其中一条语句: SELECT MTL_SECONDARY_INVENTORIES.SECONDARY_INVENTORY_NAME,MTL_SECONDARY_INVENTORIES.ORGANIZATION_ID,MTL_SECONDARY_INVENTORIES.DES…

android jni java类型与c语言类型互换

1.java String转换 C str char* Jstring2CStr(JNIEnv* env, jstring jstr) {char* rtn NULL;jclass clsstring (*env)->FindClass(env,"java/lang/String");jstring strencode (*env)->NewStringUTF(env,"GB2312");jme…

zip:命令行下zip压缩/解压缩

在Ubuntu 18.04下验证,造冰箱的大熊猫cnblogs 2019/6/6 1压缩单个文件zip package.zip file2压缩多个文件zip package.zip file1 file23压缩单个文件夹zip -r package.zip folder4压缩多个文件夹zip -r package.zip folder1 folder25压缩文件、文件夹zip -r package…

inv(a) matlab,在MATLAB中,inv(A)表示的是()

在MATLAB中,inv(A)表示的是()答:矩阵A的逆下列不属于植物生长调节剂的是( )。答:DDTHe received four years of training in English and two years in English teaching.He is a _______ English instructor.答:qualified第五章&…

TSQL与PL/SQL的比较

TSQL与PL/SQL的比较 以前一直用mssql 做开发,最近的项目都Oracle, 1)数据类型 TSQL PL/SQL numeric(p,s) numeric(p,s) or NUMBER(p,s) decimal(p,s) decimal(p,s) or NUMBER(p,s) char(m) Char(m) varchar(m) varchar2(m) datetime date…

前端文件表单/ajax上传实例代码

表单上传文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>测试文件上传</title> </head> <body> <form action"/attach/upload" enctype"multipart/form-dat…

matlab2012生成dll,64位win7下vc2010如何调用matlab2012a中生成的dll文件

本文说是原创&#xff0c;但核心部分是参考http://blog.sina.com.cn/s/blog_a5fdbf0101018n91.html(大家可以先看看这篇文章)&#xff0c;在此再次感谢debug童鞋。debug童鞋的系统是 win7 32位 vc2010 (32位编译器) Matlab2012a &#xff0c;如果童鞋们win7是32位的话就不必…

CentOS/Linux 卸载MATLAB

rm -rf /usr/local/MATLAB/R2012arm /usr/local/bin/matlab /usr/local/bin/mcc /usr/local/bin/mex /usr/local/bin/mbuild

.NET中的正则表达式 (三)RegexCompilationInfo 类

RegexCompilationInfo 类 提供编译器用于将正则表达式编译为独立程序集的信息。 属性 IsPublic&#xff1a;获取或设置一个值&#xff0c;该值指示所编译的正则表达式是否具有公共可见性。 Name&#xff1a;获取或设置用于所编译的正则表达式的类型名称。 Namespace&#xff1a…

DOCKER - 容器抓包

https://help.aliyun.com/knowledge_detail/40564.html?spma2c4e.11153940.blogcont272172.10.b09e28a6AOdITp#Linux http://man7.org/linux/man-pages/man1/nsenter.1.html?spma2c4e.11153940.blogcont272172.9.b09e28a6AOdITp [转]待整理 nsenter nsenter 包含在绝大部分 L…

高仿QQ即时聊天软件开发系列之三登录窗口用户选择下拉框

上一篇高仿QQ即时聊天软件开发系列之二登录窗口界面写了一个大概的布局和原理 这一篇详细说下拉框的实现原理 先上最终效果图 一开始其实只是想给下拉框加一个placeholder效果&#xff0c;让下拉框在未选择未输入时显示一个提示字符串。由于Background对ComboBox无效&#xff0…

Nokia7610彩信设置

1. 进入功能表—工具—设置—连接设置 2. 进入接入点&#xff0c;按“选项”—“新增接入点”—“使用默认设置”。 3. 自定义连接名称&#xff0c;可为&#xff1a;中国移动彩信&#xff0c;数据承载方式&#xff1a;GPRS 接入点名称&#xff1a;cmwap 4. 用户名、提示输入…

matlab guidata两个,Matlab

%在控件本身函数中用hObject调用%在别的函数中&#xff0c;需要使用handles调用function varargout TestGUI(varargin)% TESTGUI MATLAB code for TestGUI.fig% TESTGUI, by itself, creates a new TESTGUI or raises the existing% singleton*.%% H TESTGUI …

spring boot jar包替换报错之Unable to open nested entry 'BOOT-INF/lib/cache-api-0.4.jar'.

spring boot用layout ZIP打出来的包能够支持外部classpath&#xff0c;但是当用rar/7zip替换其中的jar后&#xff0c;报下列错误&#xff1a; Unable to open nested entry BOOT-INF/lib/cache-api-0.4.jar. It has been compressed and nested jar files must be stored witho…