我在名为团队的表格中有一个名为名称的列。当名称值以一个或多个连续的“x”字符开头时,我希望排除这些字符,但保留稍后出现在同一字符串中的任何“x”。
我用过......
SELECT REPLACE(Name, 'x', '') FROM table
但这并没有给我我想要的结果,因为它将xJammy Pricx
更改为Jammy Pric
,xP-X Corp
更改为P- Corp
。我想删除仅前导x字符。
对于这些样本值......
xxxJames
xxxxxxxVikkie
XXXJohnny
xJakie
xJammy Pricx
xP-X Corp
结果应该是......
James
Vikkie
Johnny
Jakie
Jammy Pricx
P-X Corp
答案 0 :(得分:1)
我没有看到如何使用可在查询中使用的普通Access SQL和标准VBA函数来执行您想要的操作。所以我认为你的查询需要一个自定义函数。在这种情况下,正则表达式方法很容易。
SELECT RegExpReplace([Name], '^[Xx]*', '')
FROM Team;
在模式中,^[Xx]*
,^
匹配字符串的开头,[Xx]
匹配一个X
或x
字符,{{1} }表示前一个字符(*
或X
)的零个或多个匹配项。
将此功能添加到标准模块。如果是新模块,请不要将模块命名为x
; RegExpReplace
没关系。
modRegExpReplace