gpt4 book ai didi

Java正则表达式查找字符串之外的变量名

转载 作者:行者123 更新时间:2023-12-02 00:28:21 25 4
gpt4 key购买 nike

我想查找文件中变量名称的所有出现,假设变量test:

 int test;

但我不想在字符串内匹配变量名称,例如

String s = "This is a test!";

我尝试了([^\"])([a-zA-Z_$][\\w$]*)([^\"]),但它不起作用.

最佳答案

恐怕正则表达式不太适合您的问题。由于解析源代码时需要考虑很多语义,因此您不太可能想出一个可靠的表达式,该表达式不会被字符串中的转义引号之类的内容所混淆。

解析源代码(并可靠地检测变量名称等内容)的更好方法是使用生成的解析器,它知道要解析的文件的语法。 SableCC为此而设计,它还方便地提供了 grammar file适用于 Java 1.5。

它基本上会标记给定的源代码并向每个标记添加类型信息。这样,您可以简单地迭代所有标记并重建源,同时替换与您的搜索词匹配且类型为变量的每个标记。

关于Java正则表达式查找字符串之外的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9619052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com