Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 帮助构建正则表达式_Java_Regex - Fatal编程技术网

Java 帮助构建正则表达式

Java 帮助构建正则表达式,java,regex,Java,Regex,我需要构建一个正则表达式,仅当单词“int”不是某个字符串的一部分时才查找它 我想知道代码中是否使用int。(不在某些字符串中,仅在常规代码中) 例如: int i; // the regex should find this one. String example = "int i"; // the regex should ignore this line. logger.i("int"); // the regex should ignore this line. logger.i("

我需要构建一个正则表达式,仅当单词“int”不是某个字符串的一部分时才查找它

我想知道代码中是否使用int。(不在某些字符串中,仅在常规代码中)

例如:

int i;  // the regex should find this one.
String example = "int i"; // the regex should ignore this line.
logger.i("int"); // the regex should ignore this line. 
logger.i("int") + int.toString(); // the regex should find this one (because of the second int)

谢谢

不太确定您的完整需求是什么,但是

$\s*\bint\b

也许

假设每行都有输入

^int\s[\$_a-bA-B\;]*$

它遵循基本的变量命名规则:)

它不是防弹的,但这适用于所有测试用例:

(?<=^([^"]*|[^"]*"[^"]*"[^"]*))\bint\b(?=([^"]*|[^"]*"[^"]*"[^"]*)$)
输出(包括正则表达式,因此您可以在不使用所有转义的情况下读取它):


(?如果您想解析代码并搜索孤立的整型词,这是可行的:

(^int|[\(\ \;,]int)
您可以使用它来查找代码中只能以空格、逗号、“;”和左括号开头的int,或者是行的第一个单词

您可以在这里尝试并增强它

PS:这适用于您的所有测试用例。

$[^”]*\bint\b

应该可以。我想不出在字符“”之后可以使用有效的int标识符的情况。
当然,这仅适用于代码限制为每行一条语句的情况。

正则表达式应该在Java中工作,还是在Java代码上应用表达式?是否需要解析文件以检查程序语法?在这种情况下,很容易-如果int以“String”标记开头,以“;”结尾,则忽略int即可
(?<=^([^"]*|[^"]*"[^"]*"[^"]*))\bint\b(?=([^"]*|[^"]*"[^"]*"[^"]*)$)
true: int i;
false: String example = "int i";
false: logger.i("int");
true: logger.i("int") + int.toString();
(^int|[\(\ \;,]int)