我想从字符串中返回5个连续数字(在VBA中工作)。
根据这篇文章Regex我正在使用模式WITH CTE AS
(
SELECT b.name, ...
RN = ROW_NUMBER() OVER( PARTITION BY a.id
ORDER BY b.DateColumn DESC)
FROM ...
LEFT JOIN table_b AS b
ON b.id = a.id
)
SELECT *,
CASE
WHEN a.id IS NOT NULL
THEN b.name
END
FROM CTE
WHERE RN = 1;
,但这会在目标5位数之前和之后立即获取单个字母并返回[^\d]\d{5}[^\d]
(来自“。 ... South92345West“)。
如何修改以仅返回5个连续数字:h92345W
92345
答案 0 :(得分:2)
您需要使用一个组:
"[^\d](\d{5})[^\d]"
然后该数字将在第一组中。不确定用于分组的VBA语法。
答案 1 :(得分:2)
([^\d])(\d{5})([^\d])
你可以使用这个正则表达式,匹配的术语应该在第二组