excel vba - 删除文章

时间:2017-12-03 04:22:07

标签: excel string vba excel-vba

Excel vba

我试图通过Excel VBA从文章(基本上不同的新闻文章)中删除某些不需要的文本(来自JSON)

  • [{“body2”:“”},{“body2”:“
  • [{“body2”:“”}
  • “}
  • ,{“body2”:“
  • \ n
  • \ t
  • “}]

需要编辑的文章

第一个例子

[{“body2”:“AA参与社区,尽管培训和运营\ n \ n”},{“body2”:“我们感谢Tin Tan先生在论坛信中提出的建议” SDE志愿者,“日期为2014年1月25日。”},{“body2”:“hhh满足了我们生活方式的迫切需要。因此,培训和运营是首要任务。尽管如此,AA积极参与支持我们的社区。我们的单位定期组织社区参与项目,例如访问家园以帮助和鼓励同胞,以及让学生参与学校合作计划。这些项目允许我们的员工参与社区服务,同时履行他们的服务承诺。2013年,我们的士兵支持了50多所房屋,并雇用了30多所学校。\ n“},{”body2“:”G.Huang \ nHead \ nJoint Manpower Department“},{”body2“:”\ n \ nSDE的回复发表为\ “尽管有培训和运营,但AA也参与了社区”,新闻时报,1月28日“}}

第二个例子

[{“body2”:“”},{“body2”:“本地大学提供早期进入的SDE选项”},{“body2”:“AA希望回应新闻时报信件中提出的问题让全职员工更早进入大学。“},{”body2“:”AA注意到服务要求员工延迟他们的个人追求,并且不会使全职服务的时间超过必要的时间。两年的全职工作是必要的,以培养我们的员工达到所需的熟练程度,以便他们成为满足运营需求的常备力量的一部分。“},{”body2“:”随后,完成他的全职服务。}},{“body2”:“AA允许他们在同一时间开始他们的大学学习的东西中断,这确保他们没有比同一群体中的同龄人更好或更差,谁也服务NS。“},{”body2“:”就进入本地大学而言,现在有更多选择。“},{”body2“:”此外,科技大学和德sign有一个独特的学术日历,从5月开始,领先于其他大学,其8个学期的课程可以在3。5年内完成。“},{”body2“:”Tm \ nDirector Manpower \ ndepert \ n“},{ “body2”:“”},{“body2”:“SDE发布为”本地大学代表队提供员工选择提前入场:AA \“,The News Times,12 Jun 12”},{“body2”:“” }]

到目前为止我做了什么

Public Function RemoveN(RemN As String) As String
Dim PosN As Integer
' remove any \n
PosN = InStr(1, RemN, "\n")
 Do While PosN > 0
 RemN = Replace(RemN, "\n", "")
 PosN = InStr(1, RemN, "\n")
 Loop
RemoveN = RemN
End Function
Public Function RemoveT(RemT As String) As String
Dim Post As Integer
' remove any \n
 Post = InStr(1, RemT, "\t")
Do While Post > 0
 RemT = Replace(RemT, "\t", "")
 Post = InStr(1, RemT, "\t")
 Loop
RemoveT = RemT

End Function
Public Function RemoveSlash(Rems As String) As String
Dim Poss As Integer
' remove any \n
Poss = InStr(1, Rems, "\")
Do While Poss > 0
Rems = Replace(Rems, "\", "")
 Poss = InStr(1, Rems, "\")
Loop
RemoveSlash = Rems

End Function

1 个答案:

答案 0 :(得分:0)

使用正则表达式的此例程似乎会在您声明时清理您的文章。在此示例中,body2可以是不包含冒号的任何单词。但是,如果您特别想要查找body2,请将[^:]部分替换为body2

Option Explicit
Function CleanUp(S As String) As String
    Dim RE As Object
    Const sPat As String = "\[?\{[^:]+:""|""}]?|\\n|\\""|,(?=\{)"
Set RE = CreateObject("vbscript.regexp")
With RE
    .Global = True
    .Pattern = sPat

    'Replace pattern with a space
    CleanUp = WorksheetFunction.Trim(.Replace(S, " "))

    'cleanup spaces before commas
    .Pattern = "\s+,"
    CleanUp = .Replace(CleanUp, ",")
End With
End Function

正则表达式的解释

\[?\{[^:]+:"|"}]?|\\n|\\"|,(?=\{)

选项:不区分大小写; ^ $不匹配的换行

使用RegexBuddy

创建

enter image description here