Regex 使用正则表达式在for循环中获取终止符int

Regex 使用正则表达式在for循环中获取终止符int,regex,Regex,我搜索了很多,但找不到变量中的for循环 我有一个类似于:”的字符串,用于(I=0;I这适用于: \bfor\s*\([^;]+;.+\b(\d+)\b\s*; 这允许在for和open paren之间以及捕获组1中的数字(您想要的数字)和以下分号之间使用空格 至于如何“获取”您想要的号码:它在捕获组1中。我不知道您使用的是什么语言,但在Java中,您可以通过以下方式检索它: Matcher m = Pattern. compile("\\bfor\\s*\\([^;]+;.+\\b

我搜索了很多,但找不到变量中的for循环

我有一个类似于:
”的字符串,用于(I=0;I这适用于:

\bfor\s*\([^;]+;.+\b(\d+)\b\s*;

这允许在for和open paren之间以及捕获组1中的数字(您想要的数字)和以下分号之间使用空格

至于如何“获取”您想要的号码:它在捕获组1中。我不知道您使用的是什么语言,但在Java中,您可以通过以下方式检索它:

Matcher m = Pattern.
   compile("\\bfor\\s*\\([^;]+;.+\\b(\\d+)\\b\\s*;").
   matcher(theSourceCode);

int theNumberYouWant = -1;
if(m.find())  {
   //Safe to translate to int, since the match guarantees it's a number
   theNumberYouWant = Integer.parseInt(m.group(1));
}
如果您还需要捕获第一个数字,在第一个分号之前,只需复制当前捕获组。因此,请更改此设置

\bfor\s*\([^;]+;.+\b(\d+)\b\s*;

现在,第一个数字在捕获组1中,第二个在捕获组2中。

这样做:

\bfor\s*\([^;]+;.+\b(\d+)\b\s*;

这允许在for和open paren之间以及捕获组1中的数字(您想要的数字)和以下分号之间使用空格

至于如何“获取”您想要的号码:它在捕获组1中。我不知道您使用的是什么语言,但在Java中,您可以通过以下方式检索它:

Matcher m = Pattern.
   compile("\\bfor\\s*\\([^;]+;.+\\b(\\d+)\\b\\s*;").
   matcher(theSourceCode);

int theNumberYouWant = -1;
if(m.find())  {
   //Safe to translate to int, since the match guarantees it's a number
   theNumberYouWant = Integer.parseInt(m.group(1));
}
如果您还需要捕获第一个数字,在第一个分号之前,只需复制当前捕获组。因此,请更改此设置

\bfor\s*\([^;]+;.+\b(\d+)\b\s*;

现在,第一个数字在捕获组1中,第二个在捕获组2中。

这样做:

\bfor\s*\([^;]+;.+\b(\d+)\b\s*;

这允许在for和open paren之间以及捕获组1中的数字(您想要的数字)和以下分号之间使用空格

至于如何“获取”您想要的号码:它在捕获组1中。我不知道您使用的是什么语言,但在Java中,您可以通过以下方式检索它:

Matcher m = Pattern.
   compile("\\bfor\\s*\\([^;]+;.+\\b(\\d+)\\b\\s*;").
   matcher(theSourceCode);

int theNumberYouWant = -1;
if(m.find())  {
   //Safe to translate to int, since the match guarantees it's a number
   theNumberYouWant = Integer.parseInt(m.group(1));
}
如果您还需要捕获第一个数字,在第一个分号之前,只需复制当前捕获组。因此,请更改此设置

\bfor\s*\([^;]+;.+\b(\d+)\b\s*;

现在,第一个数字在捕获组1中,第二个在捕获组2中。

这样做:

\bfor\s*\([^;]+;.+\b(\d+)\b\s*;

这允许在for和open paren之间以及捕获组1中的数字(您想要的数字)和以下分号之间使用空格

至于如何“获取”您想要的号码:它在捕获组1中。我不知道您使用的是什么语言,但在Java中,您可以通过以下方式检索它:

Matcher m = Pattern.
   compile("\\bfor\\s*\\([^;]+;.+\\b(\\d+)\\b\\s*;").
   matcher(theSourceCode);

int theNumberYouWant = -1;
if(m.find())  {
   //Safe to translate to int, since the match guarantees it's a number
   theNumberYouWant = Integer.parseInt(m.group(1));
}
如果您还需要捕获第一个数字,在第一个分号之前,只需复制当前捕获组。因此,请更改此设置

\bfor\s*\([^;]+;.+\b(\d+)\b\s*;



现在,第一个数字在捕获组1中,第二个在捕获组2中。

Javascript的For loop语句被指定为@p̳x͓L̳,我知道For loop是什么,但我想通过使用regEX来检测它,因为我创建了一个实时编辑器,所以检查用户代码对我的应用程序来说不危险很重要?所以我只想检测For lo使用正则表达式进行操作。出于好奇:你为什么要这样做?你在用JavaScript解析JavaScript什么?实际上我创建了一个实时编辑器,因此如果我运行大循环,它会挂起我的应用程序,因此我必须检测循环是否长,然后提醒用户它是有害的。检查:@Phrogz@AshishMishra如果编辑器不需要与DOM如果用户编写的JavaScript不与HTML页面交互,您可能会得到更好的服务,这样您就可以杀死任何长时间运行的代码。您在这里所做的工作适用于可能会出现问题的非常非常小的代码子集。无限
while
循环,一个不递增的
for
循环ent、糟糕的递归等。Javascript的For loop语句是在@P̲̳x͓L̳指定的,我知道For loop是什么,但我想通过使用regEX来检测它,因为我创建了一个实时编辑器,所以检查用户代码对我的应用程序没有危险是很重要的。所以我只想使用regEX来检测For loop。出于好奇:你为什么想要这个?这是什么你在用JavaScript解析JavaScript吗?实际上,我正在创建一个实时编辑器,因此如果我运行大循环,它会挂起我的应用程序,因此我必须检测循环是否长,然后提醒用户它是有害的。检查:@Phrogz@AshishMishra如果用户正在编写未交互的JavaScript,则编辑器不需要与DOM交互使用HTML页面可能会更好,这样您就可以杀死任何长时间运行的代码。您在这里使用的代码子集非常小,可能会有问题。无限
while
循环、不递增的
for
循环、糟糕的递归等。Javascript的for循环语句是指定了@P̲̳x͓L̳,我知道什么是for循环,但我想通过使用regEX来检测它,因为我创建了一个实时编辑器,所以检查用户代码对我的应用程序不危险很重要?所以我只想使用regEX来检测for循环。出于好奇:你为什么想要这个?你用JavaScript解析JavaScript是什么?实际上我创建了一个一个实时编辑器,因此如果我运行大循环,它将挂起我的应用程序,因此我必须检测循环是否长,然后提醒用户它是有害的。检查:@Phrogz@AshishMishra如果编辑器不需要与DOM交互,如果用户正在编写与HTML页面不交互的JavaScript,那么最好使用至少,你可以杀死任何长时间运行的代码。你这里的代码只适用于一小部分可能会有问题的代码。无限
while
loop,一个不递增的
for
循环,糟糕的递归,等等。Javascript的for loop语句被指定为@P̲x͓L̳,我知道什么是for loop,但我想知道通过使用正则表达式检测它,因为我创建了一个实时编辑器,所以,检查用户代码对我的应用程序不危险是很重要的?所以我只想使用正则表达式检测循环。出于好奇:你为什么要这样做?你用JavaScript解析JavaScript是什么?实际上我创建了一个实时编辑器,所以如果我运行大循环,它会挂起我的应用程序,s我得走了