我有像
这样的价值观\w{1,2}-\w{1,2}\d{1,4} and \w{1,2}-\w{1,2} \d{1,4}
我转换了这些值:
AB-CD 1 -> AB-CD1
AB-CD1 -> AB-CD1
我是用
做的[ ]{1}[\d]{1}
并将“”替换为“”。这很有效。
但现在我需要进行以下转换:
AB-CD1 -> AB-CD 1
AB-CD 1 -> AB-CD 1
我试着向前看任何数字
(?=\d)
但是如果我的文本已经包含一个空格,那么我会得到两个空格。我需要选择\ w和\ d之间的空格(或者没有空格) - 我该怎么做?
答案 0 :(得分:1)
你可以写:
(?<![\d ]) ?(?=\d)
匹配一个可选空格(即空格或空字符串)不跟随数字或空格的位置, 位于数字前面。
((?<!...)
是负面的后置断言;请参阅http://www.regular-expressions.info/lookaround.html。)
答案 1 :(得分:0)
您可以将([^\d ])(?=\d)
替换为“\ 1”。
答案 2 :(得分:0)
不知道c#..但你可以尝试替换:
([a-zA-Z])([0-9]+)
到\1 \2
用sed进行小测试:
kent$ echo "AB-CD1"|sed -r 's/([a-zA-Z])([0-9]+)/\1 \2/g'
AB-CD 1