如何从另一个字符串中提取给定的字符串?
How to extract a given string out of another?
我想从另一个字符串中提取给定的字符串。
示例字符串应为:
V_DDRF_2J_WTF
V_ASDF_8J_TLDR
V_LULZ_1337_3J
(提示:整数后面的字母总是 J。)
现在我只想提取字符串的粗体部分的整数。我该如何实现?
xJ
只会出现在字符串的中间或末尾。
使用 RegExp 搜索“”、数字(序列)和可选的“” - 如:
Option Explicit
Function qq(s) : qq = """" & s & """" : End Function
Dim aTests : aTests = Array( _
"V_DDRF_2J_WTF" , "_2J_" _
, "V_ASDF_8J_TLDR", "_8J_" _
, "V_LULZ_1337_3J", "_3J" _
)
Dim r : Set r = New RegExp
'r.Pattern = "_\d+J(?:_|$)"
r.Pattern = "_\d+J_?"
Dim i, s
For i = 0 To UBound(aTests) Step 2
s = r.Execute(aTests(i + 0))(0).Value
WScript.Echo qq(aTests(i + 0)) _
, qq(s) _
, CStr(aTests(i + 1) = s)
Next
输出:
cscript 28561918.vbs
"V_DDRF_2J_WTF" "_2J_" True
"V_ASDF_8J_TLDR" "_8J_" True
"V_LULZ_1337_3J" "_3J" True
您可能需要修改模式,具体取决于您的输入数据;应添加处理不匹配的代码。
您可以使用正则表达式并使用此模式 \d+J
或 \d+\w
您可以测试模式 here
我想从另一个字符串中提取给定的字符串。
示例字符串应为:
V_DDRF_2J_WTF
V_ASDF_8J_TLDR
V_LULZ_1337_3J
(提示:整数后面的字母总是 J。)
现在我只想提取字符串的粗体部分的整数。我该如何实现?
xJ
只会出现在字符串的中间或末尾。
使用 RegExp 搜索“”、数字(序列)和可选的“” - 如:
Option Explicit
Function qq(s) : qq = """" & s & """" : End Function
Dim aTests : aTests = Array( _
"V_DDRF_2J_WTF" , "_2J_" _
, "V_ASDF_8J_TLDR", "_8J_" _
, "V_LULZ_1337_3J", "_3J" _
)
Dim r : Set r = New RegExp
'r.Pattern = "_\d+J(?:_|$)"
r.Pattern = "_\d+J_?"
Dim i, s
For i = 0 To UBound(aTests) Step 2
s = r.Execute(aTests(i + 0))(0).Value
WScript.Echo qq(aTests(i + 0)) _
, qq(s) _
, CStr(aTests(i + 1) = s)
Next
输出:
cscript 28561918.vbs
"V_DDRF_2J_WTF" "_2J_" True
"V_ASDF_8J_TLDR" "_8J_" True
"V_LULZ_1337_3J" "_3J" True
您可能需要修改模式,具体取决于您的输入数据;应添加处理不匹配的代码。
您可以使用正则表达式并使用此模式 \d+J
或 \d+\w
您可以测试模式 here