我想將單個字母后的句子分開;所以t.
成爲t
& p.m.
變得pm
。如果這種情況發生>連續1次,我想刪除發生在它們之間的空格;所以e. g.
變成eg
。如果single letter + period
連續出現超過1次,然後是1-2個空格,並且資本保持該期限,除非資金之後是期限。後單個字母(不管情況)從縮寫(單個字母+句點)開始的替代句點,除非後面跟着大寫字母
- 子溢出週期
- 獲取> 2次出現之間。如果在一排,接着1-2位和資本保持發生> 1時去掉可選的空間
- 期間
- 除非資本之後一段
MW Ë
x <- "Mr. Brown comes! I met at 7:30 p. m. I will go at 5 a.m. eastern time or @ 2 p. m. I live in the U. S. A. I met John P. Jones later."
# my attempts
gsub("(?<=(\\b[A-Za-z]))(\\.)(?! {1,2}[A-Z])", "", x, perl = TRUE)
gsub("(?<=(\\b[A-Za-z]))(\\.)(?! ??[A-Z])", "", x, perl = TRUE)
期望的結果
"Mr. Brown comes! I met at 7:30 pm. I will go at 5 am eastern time or @ 2 pm. I live in the USA. I met John P Jones later."
如果我正確了您的規則,不應該'P.瓊斯'仍然是一樣的,不會改變爲'瓊斯'? – ndn
我支持建議在'P'之後保留'P'後的時間段。 Jones'。 https://ideone.com/Omko9b怎麼樣? –
@ndn我認爲'如果發生> 1次'涵蓋這個,但我可能沒有解釋清楚。 –