2015-10-26 4 views
1

Вторая половина дня,Доступ к vba Replace/Regex?

У меня возникли проблемы с некоторыми импортными данными из PowerPoint в Access.

Изначально, когда я импортировать данные в разделе примечаний приходит как ниже для каждой строки:

<div class="ExternalClass63DBAC931E7D4E4680E207BF938770AA"><p>xxxxxxxxxxx.</p> <p>xxxxxxxxxxxx</p></div> 

ххххххх где данные я хочу, чтобы вытащить это. Я попытался Regex в виде замены все между <>, как показано ниже

Public Function AddPipesBeforeDates(ByVal strText As String) As String 
Dim regex As Object 
Dim matches As Object 
Dim m As Object 


Set regex = CreateObject("VBScript.RegExp") 
regex.Global = True 
regex.pattern = "<.*>" 
Set matches = regex.Execute(strText) 
For Each m In matches 
    strText = Replace(strText, m, "") 
Next 
AddPipesBeforeDates = strText 

Set matches = Nothing 
Set regex = Nothing 
End Function 

Проблема становится она стирает все.
Я только что узнал о Regex, и я не знаком с ним. Есть ли способ удалить ненужные данные?

Обратите внимание на данные XXXXXX может быть любое значение пробелы или специальные символы

Любые мысли или идеи о том, как сделать это будет оценено. Возможно, я ошибаюсь.

Благодаря

+0

Используйте '<[^>] *>' или '<[^<>] * * regex для удаления только между' <...> '. –

+0

Спасибо, что работает отлично. – Cameron

ответ

1

Вы должны отметить, что . соответствует любому символу, кроме символа новой строки (таким образом, в том числе и <>).

Чтобы удалить все подстроки между < и >, вы можете использовать

regex.pattern = "<[^<]+>" 

Таким образом, вы избежите «overfiring» и соответствие больше, чем нужно.

Смежные вопросы