C# RegExp:如果存在空间,请选择空间
我有这样的价值观C# RegExp:如果存在空间,请选择空间,c#,regex,C#,Regex,我有这样的价值观 \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{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之间的空格(或无空格)-如何操作?您可以将([^\d])(?=\d)
替换为“\1” 您可以将([^\d])(?=\d)
替换为“\1” 你可以写:
(?<![\d ]) ?(?=\d)
(?
匹配可选空格(即空格或空字符串)位置,该位置不在数字或空格之后,且在数字之前
((?是一个否定的查找断言;请参阅。)您可以编写:
(?<![\d ]) ?(?=\d)
(?
匹配可选空格(即空格或空字符串)位置,该位置不在数字或空格之后,且在数字之前
((?是一个否定的lookbehind断言;请参阅。)不知道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
不知道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
这是什么语言?(我问,因为许多风格的正则表达式支持lookbehind,(?,而许多不支持。)另外:我希望您知道\w
匹配数字(不仅仅是字母和下划线),[\d]
相当于\d
,并且{1}
是多余的吗?它是C#方言。是的,它可能是多余的,但我发现它更可读。这是什么语言?(我问这个问题是因为许多风格的正则表达式支持lookbehind,(?,而许多不支持。)另外:我希望你知道\w
匹配数字(不仅仅是字母和下划线),即[\d]
相当于\d
,而{1}
是多余的?它是C#方言。是的,它可能是多余的,但我发现更可读。如果字符和数字之间没有空格,我想选择空格或空字符串。如果字符和数字之间没有空格,我想选择空格或空字符串。