使用Access查询从字段的开头删除连续的“x”字符

时间:2016-07-17 13:50:48

标签: sql ms-access ms-access-2007

我在名为团队的表格中有一个名为名称的列。当名称值以一个或多个连续的“x”字符开头时,我希望排除这些字符,但保留稍后出现在同一字符串中的任何“x”。

我用过......

SELECT REPLACE(Name, 'x', '') FROM table 

但这并没有给我我想要的结果,因为它将xJammy Pricx更改为Jammy PricxP-X Corp更改为P- Corp。我想删除前导x字符。

对于这些样本值......

xxxJames
xxxxxxxVikkie
XXXJohnny
xJakie
xJammy Pricx 
xP-X Corp

结果应该是......

James
Vikkie
Johnny
Jakie
Jammy Pricx
P-X Corp

1 个答案:

答案 0 :(得分:1)

我没有看到如何使用可在查询中使用的普通Access SQL和标准VBA函数来执行您想要的操作。所以我认为你的查询需要一个自定义函数。在这种情况下,正则表达式方法很容易。

SELECT RegExpReplace([Name], '^[Xx]*', '')
FROM Team;

在模式中,^[Xx]*^匹配字符串的开头,[Xx]匹配一个Xx字符,{{1} }表示前一个字符(*X)的零个或多个匹配项。

将此功能添加到标准模块。如果是新模块,请不要将模块命名为x; RegExpReplace没关系。

modRegExpReplace