我必須找到空格分隔的單詞。用最小的回溯來做什麼最佳實踐?正則表達式找到用空格分隔的單詞,回溯
我發現這個解決方案:
Regex: \d+\s([a-zA-Z]+\\s{0,1}){1,} in a sentence
Input: 1234 this is words in a sentence
所以,this is words
- 我有使用正則表達式([a-zA-Z]+\\s{0,1}){1,}
和文字in a sentence
我已經常量字在正則表達式in a sentences
檢查檢查。
但在這種情況下regex101.com給我調試4156步驟,這是災難性的回溯。任何方式來避免它?
我還有其他更復雜的例子,它需要86000步,它不驗證。
主要問題,我必須找到所有由空格分隔的單詞,但是在同一時間,正則表達式包含由空格(常量)分隔的單詞。這是我的災難性回溯。
我必須使用Java來做到這一點。
你可以用'\ w'替換'[a-zA-Z]'來表示所有非空白字符,對嗎? – Arc676
我不知道我是否誤解了你的問題,但不能簡單地使用'String.split()'? – dguay
如果您根據空格/點/空格拆分字符串並從那裏出發,會有幫助嗎? – xaviert