- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试连接多个字符串并用逗号分隔它们,然后删除多余的前导逗号和尾随逗号。
例如,输入 TEST("", "b", "c", "", "")
,我想得到b、c
但是,我的正则表达式 ,$| ,+|^,
并没有真正考虑重复的逗号:
Function TEST(a, b, c, d, e)
res = a & ", " & b & ", " & c & ", " & d & ", " & e
Debug.Print (res)
Dim regex As Object, str, result As String
Set regex = CreateObject("VBScript.RegExp")
With regex
.Pattern = ",$| ,+|^,"
End With
Dim ReplacePattern As String
ReplacePattern = ""
res = regex.Replace(res, ReplacePattern)
TEST = res
End Function
我该怎么做?
最佳答案
最优雅的是@ScottCraner 的建议 TEXTJOIN
(如果他希望将其作为自己的内容发布,将删除这部分答案)
Private Function nonEmptyFields(ParamArray strings() As Variant) As String
nonEmptyFields = WorksheetFunction.TextJoin(",", True, Array(strings))
End Function
<小时/>Note: This will only work for Office 365+, but you can always create your own version of
TEXTJOIN
另一种选择是循环遍历字符串的 ParamArray
并将它们添加在一起,具体取决于它们的内容(无论它们是填充还是空)
Private Function nonEmptyFields(ParamArray strings() As Variant) As String
Dim result As String
Dim i As Byte
For i = LBound(strings) To UBound(strings)
If Len(strings(i)) <> 0 Then
If result = vbNullString Then
result = strings(i)
Else
result = result & "," & strings(i)
End If
End If
Next i
nonEmptyFields = result
End Function
通过设置两者都会产生期望的结果
Debug.Print nonEmptyFields(a, b, c, d, e, f) ' "", "b", "c", "", "", ""
关于regex - 连接字符串并删除多余的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55576967/
我的服务层有如下方法 public ModuleResponse GetModules(ModuleRequest request) { var response = new ModuleRe
我构建的工具栏与大多数工具栏一样,minHeight 设置为 actionBarSize: 但是,如果我删除这个属性,就完全没有区别了。工具栏保持其 actionBarSize,即使我删除菜单并将
我已经为 SVG 和剪辑路径苦苦挣扎了一段时间。 我正在尝试创建一个三 Angular 形剪辑路径,它将覆盖照片以给顶部一个“三 Angular 形”边缘。 我试图实现与照片完全相同的效果,但三 An
我有一个带有 2 个索引的 PostgreSQL 表。其中一个索引涵盖了 website_id 和 tweet_id 列,是一个唯一的 B 树索引。第二个索引只覆盖 website_id 列,是一个非
我是一名优秀的程序员,十分优秀!