Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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,我需要从大量文本中提取一个值。我认为最好的方法是使用正则表达式。如果有人认为有更好的方法,请随时提出建议 我需要提取的值始终以以下形式的字符串显示: [格式化的\u int\u值]跨[整数值需要提取]页面的结果 e、 g:3342个结果,共67页 在上面的例子中,我试图提取的值是67。还要注意,上面示例中的每个单词可能由一个或多个空格和/或换行符分隔。如前所述,此文本是更大文本体的一部分(我正在屏幕上抓取网页) 有人能帮我使用正则表达式来提取我需要的int值(在我上面的例子中是67)吗?它考虑了

我需要从大量文本中提取一个值。我认为最好的方法是使用正则表达式。如果有人认为有更好的方法,请随时提出建议

我需要提取的值始终以以下形式的字符串显示:

[格式化的\u int\u值]跨[整数值需要提取]页面的结果

e、 g:3342个结果,共67页

在上面的例子中,我试图提取的值是67。还要注意,上面示例中的每个单词可能由一个或多个空格和/或换行符分隔。如前所述,此文本是更大文本体的一部分(我正在屏幕上抓取网页)

有人能帮我使用正则表达式来提取我需要的int值(在我上面的例子中是67)吗?它考虑了我提供的条件


谢谢。

正则表达式将非常简单:

([\d,]+)\s+results\s+across\s+(\d+)\s+pages
67个在第2组,另一个数字(如果你需要的话)在第1组

var text = "some text here 3,342 results across 67 pages some more text here";
var regex = /([\d,]+)\s+results\s+across\s+(\d+)\s+pages/;

var matches = regex.exec(text);

/* matches will be this array:

["3,342 results across 67 pages", "3,342", "67"]
---- entire match --------------  --g1---  -g2-    
*/

为了满足他的空白要求,用
\s+
刷新我的记忆,请问
\s
会自动处理换行吗?托尼·恩尼斯:是的,换行是
\s
的一部分。自己检查:
/^\s+$/.test(“\r\n”)
返回
true
@Peter:它应该考虑换行符。你注意到我在@Michael的评论后改变了我的答案吗?如果它不适合你,你没有提到所有必要的细节。此外,除非您没有按照描述的方式进行操作,否则组计数不会更改。这太不明确了——它将获取与“X结果与Y结果”模式不匹配的整数。@Michael:噢!是的,的确如此。我没看见。
int theIntYouWantToExtract = Integer.parseInt(yourLongText.replaceAll(
        ".*([\d,]+) results across ([\d,]+) pages.*",
        "$2"));