regex - 类型?文本 block 正则表达式函数

标签 regex excel vba

我最近开始使用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/

相关文章:

jQuery RegEx 测试返回未定义

excel - 将 HTML 导出到具有不同结果的文本文件

sql - Recordset.Update 数据库或对象是只读的

python - xlwings - 获取和设置命名范围

php - http开头pdf结尾的正则表达式?

python - 在Python中分割一行;只取前 4 个值

mysql - 使用 SQL REGEXP 忽略数字并仅获取字符串和 '/'

python - 如何让 pandas 将 xlsx 文件(包括其工作表)复制到新的 xlsx 文件中

python - 将多系列词典保存到 Excel

vba - VBA 中的运行时错误 429,但类已注册