我试图找出这个意义正则表达式的含义:Java的正则表达式:表达
.{0,70}(?:\\S(?:-| |$)|$)
我明白使用regexper这种表达的意义。
我的理解:
1)1至70个字符,除了新行
2)然后可以有行结束(在我们表达的尽头“| $)”)或
3)在非捕获组中第二个替代方案是“\ S(?: - | | $)”。它表示它不能是非空白字符“ - ”或SPACE或“最终os行”。
我的理解可能不正确。我无法知道它是如何工作的。你能用一些测试数据例子来解释我吗?
我试图找出这个意义正则表达式的含义:Java的正则表达式:表达
.{0,70}(?:\\S(?:-| |$)|$)
我明白使用regexper这种表达的意义。
我的理解:
1)1至70个字符,除了新行
2)然后可以有行结束(在我们表达的尽头“| $)”)或
3)在非捕获组中第二个替代方案是“\ S(?: - | | $)”。它表示它不能是非空白字符“ - ”或SPACE或“最终os行”。
我的理解可能不正确。我无法知道它是如何工作的。你能用一些测试数据例子来解释我吗?
我们不能忽视的事实组都是非caputuring,因为有东西是否匹配没有影响,所以我们必须:接着为无论是
.{0,70}(\\S(-| |$)|$)
.{0,70}
0-70非新行字符
(包围在单引号这样的空间是可见的):
'\S-'
非空白字符和-
'\S '
一个非空白字符和输入的空间'\S$'
一个非空白字符和结束'$'
输入端所以我想说,它试图匹配任何由多达70个字符组成的字符集,这些字符集由-
或空格分隔。
我不确定你会用什么样的输入。有可能是需要一段文本并将它分割成不超过72个字符的行(最后一个字符是单词之间的空格或一个连字符中的-
)?
举一个例子的缘故,如果您降低.{0,70}
到.{0,10)
中,你可以使用它在下面输入:
"Hello how are you? My name is Dr Bob Scott-Thomas"
将它分为:
|<-10 limit here
"Hello how "
"are you? "|
"My name is "
"Dr Bob " |
"Scott-" |
"Thomas" |
感谢您的简单和明确的例子。它帮助我理解它的意义。 – user613114
我只是它插入regex101,这就是它说:
. 0 to 70 times [greedy] Any character (except newline)
(?:\S(?:-| |$)|$) Non-capturing Group
1st Alternative: \S(?:-| |$)
\S Any char except whitespaces [^\t \r\n\f\v]
(?:-| |$) Non-capturing Group
1st Alternative: -
Literal -
2nd Alternative:
Space (ASCII 32)
3rd Alternative: $
$ End of string
2nd Alternative: $
$ End of string
你试过看看正则表达式符号表吗?或者你了解它的一部分?更清楚导致混淆的原因。 – keyser
你从哪里得到它的? –
对不起,我们不会在这里为您编写教程。已经有很多很棒的,比如[this](http://www.regular-expressions.info/tutorial.html)。投票表达您的问题,直到您指定哪个部分完全混淆您。 – Pshemo