找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: 琥珀有欣

求大神帮写一个正则表达式

26
回复
542
查看
[复制链接]

0

主题

2

帖子

-2

幻币

东方不败

积分
-2
2022-2-8 02:17:36 显示全部楼层
b5e93df843377bfee0657a4db76ddc08.png
非常感谢大佬
还有几个小问题,比如:泉芯家乡花生汤圆400g  会成 泉芯家乡花生汤圆g400
艾可思奖杯鸭太空杯500ML SFC-616 会成 艾可思奖杯鸭太空杯6500ml sfc61
这个可不可以再优化一下呢,如果碰到有数字与英文的时候,就按原来的顺序提取可以吗!
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

7

帖子

1

幻币

初入江湖

Rank: 1

积分
9
2022-2-9 04:56:35 显示全部楼层
Sub 正则替换()
  r = Cells(Rows.Count, 2).End(xlUp).Row
  ar = Range("B2").Resize(r, 2)
  Set reg = CreateObject("VBScript.RegExp")
  reg.Global = True
  reg.Pattern = "[^\w一-龥 \*]+"
  For i = 1 To r - 1
  ar(i, 1) = reg.Replace(LCase(ar(i, 1)), "")
  Next
  reg.Pattern = "^(\W*)(\w[\w\* 包袋盒支片]*)([\d\D]*)$"
  For i = 1 To r - 1
  ar(i, 2) = reg.Replace(ar(i, 1), "$2")
  ar(i, 1) = reg.Replace(ar(i, 1), "$1$3$2")
  Next
  Range("L2").Resize(r, 2) = ar
End Sub
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

8

帖子

1

幻币

初入江湖

Rank: 1

积分
10
2022-2-11 07:49:13 显示全部楼层
太完美了,多想要的效果,
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

5

帖子

2

幻币

初入江湖

Rank: 1

积分
9
2022-2-14 08:21:38 显示全部楼层
\d+\w+(\s)?(\s)?(\w+)?-?(\d+)?(\*\d+[包袋]?)?(\*\d+[包袋]?)?
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

8

帖子

1

幻币

初入江湖

Rank: 1

积分
10
2022-2-17 04:57:37 显示全部楼层
Sub RegExp()
  Dim RegExp, i%, Match
  For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
  Set RegExp = CreateObject("vbscript.regexp")
  RegExp.Pattern = "\d+\w+(\s)?(\s)?(\w+)?-?(\d+)?(\*\d+[包袋]?)?(\*\d+[包袋]?)?"
  RegExp.Global = True
  Cells(i, 4) = LCase(RegExp.Execute(Cells(i, 2))(0))
  Cells(i, 5) = LCase(RegExp.Replace(Cells(i, 2), "$1") & RegExp.Execute(Cells(i, 2))(0))
  Next i
End Sub
工作簿1.zip (11.23 KB, 下载次数: 169)
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

6

帖子

-1

幻币

初入江湖

Rank: 1

积分
4
2022-2-17 12:35:50 显示全部楼层
=LOWER(REPLACEB(B2,SEARCHB("?",B2),2*LEN(B2)-LENB(B2),"")&MIDB(B2,SEARCHB("?",B2),2*LEN(B2)-LENB(B2)))
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

幻币

初入江湖

Rank: 1

积分
0
2022-2-28 23:40:51 显示全部楼层
非常感谢大佬,
PPT学习论坛
回复 支持 反对

使用道具 举报

123
您需要登录后才可以回帖 登录 | 立即注册