我最近开始使用regEx
工作,现在发现了一个我显然无法自己解决的相当特殊的问题......
问题:我收到来自客户(来自世界各地)的数据并且必须对其进行分析。这次的数据有一些特点。
例如对于原始数据:Screw М4х20 , DIN7985
- 这是原文与 问题Screw M4x20 , DIN7985
- 这是手动书写的文本,它给了我
完美的结果
如果我现在尝试使用以下 regEx
选择尺寸“M4x20” :
(\b[M]?\d+x\d+\b)
它没有给我带来任何结果......无论是在 Excel 中,还是在
regExr
之类的网站中:Regex demo
如果我删除
M4x20
写一个新的,我得到 results .我完全不知道问题出在哪里,除了 它是由 M char 和 x char 引起的- 供引用:其余的文字/字母(a-z)也不起作用。数字工作正常。
有什么方法可以分析吗?
编辑:
有,我刚刚发现:字母是Cyrillic letters没有被识别。
尽管它们显然可以很容易地更改为拉丁字母。
最佳答案
两个字符 M
和 x
是西里尔字母的一部分,它们在正则表达式中表示为 \u041C
( M
) 和 \u0445
(x
)。
Regex demo
VBA代码 :
Set re = CreateObject("VBScript.RegExp")
re.Global = True
re.Pattern = "\u041C?\d+\u0445\d+"
For Each Match In re.Execute("Screw М4х20 , DIN7985")
Debug.Print (Match)
Next
输出:
М4х20
关于regex - 类型?文本 block 正则表达式函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49140926/