我試圖在給定的一段文本中找到大寫字母。這些詞必須一個接一個地考慮,並且它們必須至少有四個。用正則表達式在文本中捕獲大寫單詞
我有一個「幾乎」工作的代碼,但它捕獲更多:[A-Z]*(?: +[A-Z]*){4,}
。捕獲組還包括這些詞的開頭或結尾處的空格(如邊界)。
我有一個操場上,如果你想測試一下:https://regex101.com/r/BmXHFP/2
有沒有一種方法,使在例如捕獲正則表達式僅在第一句中的?我使用的語言是Go
,它沒有後視/前進。
我試圖在給定的一段文本中找到大寫字母。這些詞必須一個接一個地考慮,並且它們必須至少有四個。用正則表達式在文本中捕獲大寫單詞
我有一個「幾乎」工作的代碼,但它捕獲更多:[A-Z]*(?: +[A-Z]*){4,}
。捕獲組還包括這些詞的開頭或結尾處的空格(如邊界)。
我有一個操場上,如果你想測試一下:https://regex101.com/r/BmXHFP/2
有沒有一種方法,使在例如捕獲正則表達式僅在第一句中的?我使用的語言是Go
,它沒有後視/前進。
在你的正則表達式,你只需要改變第二*
爲+
:
在使用(?: +[A-Z]*)
,你是配套配件 「一個空格,接着0+字母」 。所以你是匹配空間。將*
替換爲+
時,如果後面有大寫字母,則會匹配空格。
將*
s替換爲+
s,並且您的正則表達式僅匹配第一句中的單詞。
.*
也匹配空字符串。看着你的正則表達式,忽略了兩個[A-Z]*
,剩下的就是一系列空間。使用+
可確保每隔不久至少有一個大寫字符。
好的。任何方式我都可以確保比賽以字母開頭,而不是空格? –
@RomeoMihalcea當然,將第一個'*'改爲'+'! ;-) – Mistalis
我覺得啞巴,謝謝! –