Удалить твиты регулярных выражений из строки текста
У меня есть лист Excel, заполненный твитами. Есть несколько записей, которые содержат строки типа @blah среди других. Мне нужно сохранить оставшуюся часть текста и удалить часть @blah. Например: "@villos эй чувак" должен быть преобразован в: "эй чувак". Это то, что я сделал до сих пор.
Sub Macro1()
'
' Macro1 Macro
'
Dim counter As Integer
Dim strIN As String
Dim newstring As String
For counter = 1 To 46
Cells(counter, "E").Select
ActiveCell.FormulaR1C1 = strIN
StripChars (strIN)
newstring = StripChars(strIN)
ActiveCell.FormulaR1C1 = StripChars(strIN)
Next counter
End Sub
Function StripChars(strIN As String) As String
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Pattern = "^@?(\w){1,15}$"
.ignorecase = True
StripChars = .Replace(strIN, vbNullString)
End With
End Function
Кроме того, есть также записи, подобные этой: Ÿ³é‡ï¼Ÿã€€ ãˆã‚ã¦çŸ¥ã‚Šã¾ã—ãŸã€‚ shiftã—ãªãŒã‚‰ã‚¨ã‚¯ã‚¹ã
Они тоже мне нужны! Идеи?
1 ответ
Для каждой строки в таблице запустите следующее регулярное выражение: ^(@.+?)\s+?(.*)$
Если строка соответствует регулярному выражению, интересующая вас информация будет находиться во второй группе захвата. (Обычно ноль индексируется, но позиция 0 будет содержать все совпадение). Первая группа захвата будет содержать дескриптор твиттера, если вам это тоже нужно.
Однако это не будет соответствовать твитам, которые не являются ответами (начиная с @). В этой ситуации единственный способ отличить обычные твиты от ненужных вам нежелательных - ограничить твит буквенно-цифровыми цифрами - но это может означать, что некоторые твиты пропускаются, если они содержат не алфавитно-цифровые символы. Следующее регулярное выражение будет работать, если это не проблема для вас:^(?:(@.+?)\s+?)?([\w\t ]+)$