Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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,[pattern]和(pattern)之间有什么区别?我在google上找不到它,因为它不允许键入那些符号。谢谢。()用于一个组(通常用于捕获、替换等),而[]用于一组字符(或者精确地说是一种“字符类”) 因此,(abc)模式将匹配整个字符串“abc”,而[abc]模式将匹配a、b或c中的任何单个字符 尽管正则表达式有特定于平台的方面,但这种差异是相当标准的,因此任何正则表达式教程都应该涵盖它。在[]中的任何内容都只匹配一个字符。因此您可以编写[aeiou]来匹配任何小写元音,或[a-m]匹配字

[pattern]
(pattern)
之间有什么区别?我在google上找不到它,因为它不允许键入那些符号。谢谢。

()
用于一个组(通常用于捕获、替换等),而
[]
用于一组字符(或者精确地说是一种“字符类”)

因此,
(abc)
模式将匹配整个字符串
“abc”
,而
[abc]
模式将匹配
a
b
c
中的任何单个字符


尽管正则表达式有特定于平台的方面,但这种差异是相当标准的,因此任何正则表达式教程都应该涵盖它。

[]
中的任何内容都只匹配一个字符。因此您可以编写
[aeiou]
来匹配任何小写元音,或
[a-m]
匹配字母表前半部分的任何字母。因为它只是一个字符,如果需要多个字符,您可能需要将其与
+
*
结合使用。例如

f[aeiou]t
匹配
fat
但不匹配
feet
,而
f[aeiou]*t
匹配
fat
foot
feet
甚至
ft


另一方面,
()
中的某些内容匹配的字符数与不带括号的字符数相同。如果要对正则表达式的某些部分进行操作,请使用
()
。例如,
ba(na)*
匹配
ba
bananana
,甚至匹配
banananana
,因为
*
(这意味着在它前面出现的任何东西的次数都不限)作用于整个
na
。此外,如果要基于正则表达式进行替换,即用新字符串替换匹配的某些部分,则
()
可以用来定义要替换的内容-例如,您可以替换字符串中与第四个括号中的表达式匹配的任何部分。

只需阅读wikipedia上的正则表达式即可。