【发布时间】:2019-10-02 16:14:29
【问题描述】:
我正在使用 Access VBA 并尝试替换出现在字母和数字字符之间的任何破折号(反之亦然)。我正在尝试使用正则表达式来定位破折号(并且只有破折号),如果它出现在字母和数字或数字和字母之间。
我能够找出语法来识别我正在寻找的模式 - 但是,表达式也选择了破折号前后的字符 - 我试图只匹配破折号。
/([0-9]-[A-Za-z])|([A-Z-a-z]-[0-9])/g
Actual Results:
1234-56789 nothing is matched
12-A458-125 2-A is matched
1-A-2-B-C985-ABC 1-A, A-2, 2-B,5-A are matched
我希望在这些情况下仅识别 - 字符
这可能吗?
谢谢!
【问题讨论】:
-
可能是
(?<=\d)-(?=[A-Za-z])|(?<=[A-Za-z])-(?=\d)。 -
谢谢。这完美无缺。但是,我应该补充一点,我正在尝试在 Access VBA 中使用它。它不喜欢积极向前看或向后看的特征。我将以此为起点进行修补……但如果您有任何其他想法,我们将不胜感激!谢谢!
-
如果你解释一下你在做什么,我会有其他想法:替换、删除、提取?
-
我编辑了问题以反映这一点 - 但我试图删除出现在字母和数字字符之间的任何破折号(反之亦然)。例如,我想让 12-A-B-92CD4-5 变成 12A-B92CD4-5。