我正在尝试执行以下操作。
模式:
aaaaa.BBBBB - 在(。)
之后添加新行aaaaaBBBBB - 在看到大写字母时添加新行。
aaaaa12345 - 在有数字时添加空格(输出:aaaaa 12345)
12345aaaaa - 在数字后面有一个字母时添加空格(输出:12345 aaaaa)
值:
客户询问了21年的计划请关注1234567
ReGex代码需要以下内容:
客户询问21 (空间)年计划**(新行)**请 跟进(空间) 1234567
结果:
客户询问了21年计划
请跟进1234567。
如何添加(空格)或(换行符),我如何识别模式并进行特定替换?
以下是我目前使用的代码:
Function SplitCaps(strIn As String) As String
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Global = True
.Pattern = "([a-z])([A-Z0-9])"
SplitCaps = .Replace(strIn, "$1 $2")
End With
End Function
答案 0 :(得分:2)
您可以使用两个正则表达式替换。第一个在0a
和a0
之间添加空格(在数字和小写字母之间),第二个在aA
和a.A
之间创建换行符。
([a-z])([0-9])|([0-9])([a-z])
并替换为$1$3 $2$4
([a-z])\.?([A-Z])
并替换为$1\n$2
$
并替换为\.
试试这段代码:
Function SplitCaps(strIn As String) As String
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
Dim result As String
With objRegex
.Global = True
.Pattern = "([a-z])([0-9])|([0-9])([a-z])"
result = .Replace(strIn, "$1$3 $2$4")
End With
With objRegex
.Global = True
.Pattern = "([a-z])\.?([A-Z])"
result = .Replace(result, "$1\n$2")
End With
SplitCaps = result
End Function