Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RegExp:如果存在空间,请选择空间_C#_Regex - Fatal编程技术网

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#方言。是的,它可能是多余的,但我发现更可读。如果字符和数字之间没有空格,我想选择空格或空字符串。如果字符和数字之间没有空格,我想选择空格或空字符串。