2017-09-24 32 views
-2

編寫一個正則表達式模式,將英語句子的第一個單詞放入寄存器中。還要注意標點符號。編寫正則表達式,將英語句子的第一個單詞放在寄存器中

這裏是我的嘗試:

[\.]\s*[A-Z] \1 

我似乎並沒有收到此權利。我錯過了什麼?

+1

你的問題有點不清楚。你是否要求與英語句子中的第一個單詞匹配的正則表達式模式?你是說你想讓它與羅馬字符中的第一個單詞相匹配嗎? –

+1

「註冊」是什麼意思?另外,你如何定義「單詞」? – melpomene

回答

-1

描述的模式接近我可能使用的模式。它包含一些假設和錯誤,但它是正確的。

[.]\s*[A-Z] \1 

此模式匹配任何字符,後跟0或更多空格,後跟大寫字母。我假設的\ 1是爲了輸出第一個捕獲組,但你沒有指定任何捕獲組。你會想用圓括號來做。

句點(。)是正則表達式中的一個特殊字符,所以如果你想匹配句末的句點,你需要尋找一個轉義期\.。這假定所有的句子都以句點結束,但情況可能並非如此。我可能會嘗試一套較爲完整的句子終止的

[\.!\?]["']?\s+([A-Z][a-z]*) 

這種模式匹配任何時期,感嘆號或問號,後面可以跟單或雙引號,後跟一個或多個空格,大寫字母和零個或多個小寫字母的序列。它捕獲最後一部分,即大寫字母的大寫字母,直到最後一個小寫字母。

此模式捕捉除第一句話的第一個單詞之外的所有內容,該單詞不遵循任何標點符號。我可能會使用一個單獨的模式。

^\s*([A-Z][a-z]*) 

此模式僅在文本的開頭匹配,其中有零個或多個空格,後跟大寫字。它捕獲大寫的單詞。

+1

在方括號中使用的時段只是一段時間。它不需要被轉義。同問號。 –

相關問題