- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对编程非常陌生,尽管有人问了几个与我类似的问题,但我似乎无法让它们满足我的需求。
我想要的是能够将原始数据复制到 A 列中,在宏上运行,它应该删除我想要保留的数据之前和之后的任何不需要的字符,从而生成一个仅包含以下数据的单元格我想。我还希望它遍历列中的所有单元格,同时记住某些单元格可能为空。
我想要保留的数据采用以下格式:L1-somedata-0000
-somedata- 文本会改变,但 -ether 一侧将始终存在,L1 有时会是 L2,而 0000(可以是任意 4 个数字)有时会是任意 3 个数字。此外,列中可能有一些行没有有用的数据,应将其删除。最后,某些单元格不会包含任何不需要的数据,这些数据应该保持不变。
Sub Test()
Dim c As Range
For Each c In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
c = removeData(c.text)
Next
End Sub
Function removeData(ByVal txt As String) As String
Dim result As String
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
RE.Pattern = "(L1-somedata-\d{4}|\d{3})"
RE.Global = True
RE.IgnoreCase = True
Set allMatches = RE.Execute(text)
If allMatches.Count <> 0 Then
result = allMatches.Item(0).submatches.Item(0)
End If
ExtractSDI = result
End Function
我已经放置了到目前为止我得到的代码,它所做的就是遍历每个单元格,如果它匹配,它只会删除我想要保留的文本以及我想要删除的内容!
我真的希望这一切都有道理!任何帮助将不胜感激。
克里斯
最佳答案
如果“-”是输入数据的一部分,您可以使用正则表达式替换,例如:
>> Set r1 = New RegExp
>> r1.Pattern = "^[^-]+(-[^-]+-).*"
>> WScript.Echo r1.Replace("L2-A-1234", "$1")
>>
-A-
或者:
>> Set r1 = New RegExp
>> r1.Pattern = "^[^-]+-([^-]+).*"
>> WScript.Echo r1.Replace("L2-B-123", "$1")
>>
B
除了 .Replace,您还可以使用子匹配:
>> WScript.Echo r1.Execute("Don't care-wanted-")(0).SubMatches(0)
>>
wanted
如果需要函数,请将正则表达式传递到函数中;并记住返回值必须分配给函数名称(removeData <> ExtractSDI)。
第二个规范的另一种可能性(“-”不是所需输出的一部分):
>> WScript.Echo Split("Whatever-Wanted-Ignore", "-")(1)
>>
Wanted
更新:
处理嵌入在所需输出中的“-”,并展示如何在公式中使用此方法/作为公式:
Option Explicit
' needs Ref to RegExp
Dim rX As RegExp
Function cleanSDI(s)
If rX Is Nothing Then
Set rX = New RegExp
rX.Pattern = "^([^-]*-)(.+)(-.*)$"
End If
cleanSDI = rX.Replace(s, "$2")
End Function
根据您的数据,您可能需要将 .Pattern 更改为
rX.Pattern = "^([^-]+-)(.+)(-.+)$"
允许 (*)/禁止 (+) 空头或空尾。使用Docs完成/理解模式。
关于regex - 在VBA(excel)中从前面和后面的单元格中删除不需要的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19398012/
我想通过将帧划分为 8x8 子 block 并将当前帧的每个 block 与前 10 帧的相邻 block 进行比较,从前 10 帧中找到运动矢量。 我可以用单帧进行操作,但我觉得很难处理 N 帧。
我正在尝试从数据库中选择一个随机条目,但仅从最新的 100 个条目中选择。有什么想法吗?谢谢。 最佳答案 对于 MySql - SELECT * FROM (SELECT * FROM tabl
我有一个表格,其中包含职位状态。表列是: ID //which is unique incremental Post_id //liked post user_id //user
使用 Laravel Eloquent,如何从前 100 行中随机抽取 10 行(按日期排序)。 例如,我有这个: $comments = Comment::orderBy('created_at',
数据是pandas系列:我正在使用df.B=df.A.str.extract(r'')使用提取的 WHERE 单词创建 B 列df: A HI my lines are so super WHERE1
我正在使用下面的脚本从前 24 小时中提取数据并将其输出到一个 html 表中,它在 8 月的整个月都有效,但自从月份更改为 9 月后就搞砸了,现在显示第一个数据入口.. 我的“时间戳”列是 varc
最近学习了Git的基本概念。我们确实使用了一些 git-svn 来熟悉它的使用。我想和我的 friend 一起在 git 上开始我的第一个“真正的”项目。 因此我想问一下您一般使用 Git 的最佳实践
我正在编写一个脚本,我需要在标签上提取 id 中可用的值,我需要使用纯 Javascript 来完成此操作。我有类似的 jQuery 代码可用,但我无法成功完成 Javascript 代码。我的 jq
我有这个查询来选择记录号 49 和 50 SELECT id,date FROM table WHERE enabled=1 ORDER BY id DESC LIMIT 2 OFFSET 48 现在
我是一名优秀的程序员,十分优秀!