我試圖找出這個意義正則表達式的含義: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