У меня есть длинная строковая переменная (много предложений, разделенных ".") С некоторой важной числовой информацией, как правило, с десятичной точкой (например, "6,5 фунтов").
Я хотел бы вывести выражение все периоды, когда они появляются в конце предложения, но оставляют их, когда они появляются между цифрами.
ОТ:
First sentence. Second sentence contains a number 1.0 and more words. One more sentence.
TO:
First sentence Second sentence contains a number 1.0 and more words One more sentence
Я делаю это в Stata, используя функции регулярных выражений Unicode, которые соответствуют этому стандарту: http://userguide.icu -project.org / strings / regexp
Что я думал, что я делал следующее: «замените точку пробелом, если предыдущий символ является строчной буквой».
gen new_variable = ustrregexrf(note_text, "(?<=[a-z])\.", " ")
Я считаю, что он удалит один период на строку,но не удалит их все. Возможно, что мне нужно сделать, это сказать: do this for all the periods you find satisfying the condition
, но так как это не работает так, как я думаю, это уже возможно, возможно, мне нужно объяснение того, что на самом деле делает.
Бонусные баллы, если вы можете сказать мне, как удалить период, когда после числа стоит пробел:
number is 1.0. Next sentence
-> number is 1.0 Next sentence
РЕДАКТИРОВАТЬ:иногда встречаются строки, такие как end sentence.begin next sentence
без пробелов, поэтому разделение на пробел не справится со всеми моими делами.