Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Regex 正则表达式模式中的混淆_Regex_Hadoop_Mapreduce - Fatal编程技术网

Regex 正则表达式模式中的混淆

Regex 正则表达式模式中的混淆,regex,hadoop,mapreduce,Regex,Hadoop,Mapreduce,我是一个编码初学者。我正在努力理解和学习网络。在上面的pattern.compile()行中,我无法理解。我阅读了关于reg-ex模式的文档,但仍然无法将其与括号中的内容联系起来 有人能给我解释一下吗?以下是这个regexp的部分: (.*)=由零个或多个任何字符的实例组成的组() =一个空格 (\\d*)=由任何数字的零个或多个实例组成的组() 所以这个regexp匹配“abcde34454”和“44”以及“445”,但不匹配“abcde44”。 请注意,\d是一个数字,但反斜杠需要转义,因此

我是一个编码初学者。我正在努力理解和学习网络。在上面的
pattern.compile()
行中,我无法理解。我阅读了关于reg-ex模式的文档,但仍然无法将其与括号中的内容联系起来


有人能给我解释一下吗?

以下是这个regexp的部分:

(.*)
=由零个或多个任何字符的实例组成的组
()

=一个空格

(\\d*)
=由任何数字的零个或多个实例组成的组
()

所以这个regexp匹配“abcde34454”和“44”以及“445”,但不匹配“abcde44”。
请注意,
\d
是一个数字,但反斜杠需要转义,因此Java的
\\d
模式和
匹配器类的文档应该有助于:

此外,我建议阅读正则表达式语法

回答你的问题:

是一个正则表达式元素,它表示除换行符以外的任何字符

*
是元素的标志,表示“前一个元素的零个或多个”

\d
是一个正则表达式元素,它表示任何单个整数0-9

捕获由括号表示。 此表达式有两个捕获,一个用于
*
,另一个用于
\d*

捕获之间有一个空格,它将匹配单个文本空格。我建议改用
\s

一些匹配字符串:

private static Pattern inputPattern = Pattern.compile("(.*) (\\d*)"); 
除非您计划从第一次和/或第二次捕获中检索信息,否则我会将表达式更改为更合适的表达式


示例:
*\s\d*

在这样的网站上测试它们会非常有帮助,尽管这样的网站不需要转义字符,所以将
\`d
更改为
\d
。我发现在这个主题上比大多数文档更清晰。感谢大家。
"zxcvb 12345"
"zxcvb "
" 12345"