Rob*_*ith 3 c# regex string replace
我试图在井号#前面添加一个空格。但是,如果井号前面已经有空格,则不应添加空格。另外,它不应在字符串的首字符添加空格。这是我到目前为止的内容:
string result = Regex.Replace("542#452", @"(?=#)(?!$)", " ");
Run Code Online (Sandbox Code Playgroud)
但这会增加双倍的空格(当一个磅符号已经有一个空格时)。它还在开头添加了一个空格:
样本数据和所需的输出:
Input Output
243#423 243 #423
22 #44 22 #44
#32# #32 #
# #
## # #
Run Code Online (Sandbox Code Playgroud)
谢谢
您可以断言左侧是非空格字符\S,然后匹配井号并用空格替换,#
(?<=\S)#
Run Code Online (Sandbox Code Playgroud)
例如
string result = Regex.Replace("542#452", @"(?<=\S)#", " #");
Run Code Online (Sandbox Code Playgroud)