正则表达式\\ s*,\\ s*有什么作用?

spa*_*kus 17 java regex string split

我想知道这行代码对一个名为surl的字符串中包含的url做了什么?

String[] stokens = surl.split("\\s*,\\s*");
Run Code Online (Sandbox Code Playgroud)

让我们假装这是surl ="http:// myipaddress:8080/Map/MapServer.html"会是什么?

Boh*_*ian 23

那个正则表达式"\\s*,\\s*"意味着:

  • \s* 任意数量的空白字符
  • 一个逗号
  • \s* 任意数量的空白字符

它将在逗号上分开并消耗任何一侧的空格

  • @Lupos `\s` 是“空白”的正则表达式。要在 Java 中编写文字反斜杠,您必须使用另一个反斜杠转义反斜杠,因此要在正则表达式中编写 `\s`,您必须在程序中编写 `"\\s"`。 (5认同)
  • @tom 是的 - 我特别喜欢在正则表达式中编写文字 baskslash:`\\\\` (2认同)

SRI*_*RAN 5

  • \ s代表"空白字符".
  • 它包括[\ t\r \n\f].即:\ s匹配空格,制表符,换行符或换页符.

    \ S*\S*

    \ s* - 表示空白字符出现零次或多次,后跟逗号,然后是零或多次出现的空白字符.

这些被称为短手表达.

你可以在这个网站找到类似的正则表达式:http://www.regular-expressions.info/shorthand.html

  • [`Pattern` javadoc](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#sum) 表示 `\s` 的完整匹配是 ` [ \t\n\x0B\f\r]`,而不仅仅是 `[ \t\r\n\f]`。 (2认同)