Google sheets 提取重复的URL参数字符串
我想提取Google sheets 提取重复的URL参数字符串,google-sheets,google-spreadsheet,Google Sheets,Google Spreadsheet,我想提取c=;t=;s=值到列,在Google工作表中以带逗号的分隔字符串表示。这些值可以重复多次,最多重复10次。 c=总是只有两个大写字母 例如: A examples &t=clothes&t=bags&s=other&c=US&c=FR&c=GB &c=NL &t=glasses &c=US&c=FR&c=GB&t=watches&t=necklaces&s=other&a
c=;t=;s=
值到列,在Google工作表中以带逗号的分隔字符串表示。这些值可以重复多次,最多重复10次。
c=
总是只有两个大写字母
例如:
A examples
&t=clothes&t=bags&s=other&c=US&c=FR&c=GB
&c=NL
&t=glasses
&c=US&c=FR&c=GB&t=watches&t=necklaces&s=other&s=required
B column (c= strings)
US, FR, GB
C column (t= strings)
clothes,bags
D column (s= strings)
other, required
试试看
我更喜欢Jeeped的解决方案,但如果您正在寻找VBA实现的话
Private Sub parse_c()
Dim result As String
Dim lr As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
result = ""
For Each cell In Range("A1:A" & lr)
For i = 1 To Len(cell)
If (Mid(cell, i, 2) = "c=") Then
If (result = "") Then
result = Mid(cell, i + 2, 2)
Else
result = result & ", " & Mid(cell, i + 2, 2)
End If
End If
Next i
cell.Offset(0, 1) = result
result = ""
Next cell
End Sub
循环遍历A列中的所有活动单元格,并用所需分隔符减去所有国家/地区
测试:(还带有一些诡计,例如=cc=UK
)
- [A-Z]任何两个字母大写的单词
- [^A-Z]不是两个字母的大写单词
Public Function GetUpperCase(inputVal As String) As String
Dim resultVal As String
Dim i As Long
For i = 1 To Len(inputVal)
If Asc(Mid(inputVal, i, 1)) >= 65 And Asc(Mid(inputVal, i, 1)) <= 90 Then
resultVal = resultVal & Mid(inputVal, i, 1)
Else
resultVal = resultVal & " "
End If
Next i
GetUpperCase = WorksheetFunction.Trim(resultVal)
End Function
公共函数GetUpperCase(inputVal作为字符串)作为字符串
Dim resultVal作为字符串
我想我会坚持多久
对于i=1到Len(inputVal)
如果Asc(Mid(inputVal,i,1))>=65和Asc(Mid(inputVal,i,1))@i'-'i,我觉得这里不需要它。这里的模式总是在“c=
”之后提取,直到“&
”我希望这里的用户提供他当前的努力来解决这个问题。@I'-'I我明白你的意思并同意。我的意思是,很明显,这只会对我们有利,所以我完全赞成,我只是说我觉得这不是绝对必要的。@l'-'l我提供了更多的例子,谢谢。@jeeped感谢这个解决方案。我添加了更多的例子,当c=出现在其他标记之前时,这个解决方案不起作用。i、 e?c=US&t=tags是否有解决方法?这实际上是一个简单的解决方案,但a)查询中的更改使此解决方案无效,并且不鼓励对使以前的回答无效的问题进行更改b)新的样本数据将解决方案从一个思维链更改为另一个思维链。无法进行“快速修改”以调整此响应以适应。c) 随着新样本数据的问题增加,您将不得不决定您是在寻找一个解决方案还是一个解决方案。感谢@l'-'l,这非常有效。=textjoin(“,”,true,split(REGEXREPLACE(A1,“[^a-Z]”,“|”),“|””)
=REGEXEXTRACT(SUBSTITUTE(A1,"&c=",","),"((?:[A-Z]{2},?)+)")
=REGEXREPLACE(REGEXREPLACE(A1,"([^A-Z]*)([A-Z]{2})([^A-Z]*)","$2, "),".$",)
Public Function GetUpperCase(inputVal As String) As String
Dim resultVal As String
Dim i As Long
For i = 1 To Len(inputVal)
If Asc(Mid(inputVal, i, 1)) >= 65 And Asc(Mid(inputVal, i, 1)) <= 90 Then
resultVal = resultVal & Mid(inputVal, i, 1)
Else
resultVal = resultVal & " "
End If
Next i
GetUpperCase = WorksheetFunction.Trim(resultVal)
End Function