F.P*_*F.P 6 string excel vba replace excel-vba
我需要在字符串中替换somethin,但替换的内容可能会有所不同.有可能
XY - test
XXxY-test
XXyyXx-TEST
yXyy -Test
Run Code Online (Sandbox Code Playgroud)
几乎任何其他空白组合和上述情况.
我需要更换"-test"部分并单独留下"XXX".所以,当使用简单的替换
Replace("XXX -test", "- test", "")
Run Code Online (Sandbox Code Playgroud)
显然,它不会起作用.所以我需要一个更复杂的Replace版本来处理这个任务.有什么我可以使用或我必须自己写吗?
如果您需要比mj82方法提供的更多灵活性(例如,您可能不知道初始表达式的长度),则可以使用正则表达式.例如:
Regex.Replace("XXX -test", "\s*-\s*test", "", RegexOptions.IgnoreCase)
Run Code Online (Sandbox Code Playgroud)
这是为了赞美eggyal的答案.这是一个VBA regexreplace函数,以便您可以使用他的答案.您会注意到我添加了ignore_case作为灵活性的选项,因此您的调用将是:
=RegexReplace(cell, "\s*-\s*test", "", TRUE)
Run Code Online (Sandbox Code Playgroud)
这是函数,我希望你发现它很有用:
' -------------------------------------------------------------------
' Search and Replace using a regular expression
' -------------------------------------------------------------------
Function RegexReplace(ByVal text As String, _
ByVal replace_what As String, _
ByVal replace_with As String, _
Optional ByVal ignore_case As Boolean = False) As String
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
RE.ignorecase = ignore_case
RE.pattern = replace_what
RE.Global = True
RegexReplace = RE.Replace(text, replace_with)
End Function
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16115 次 |
| 最近记录: |