C# 需要正则表达式的帮助来解析表达式吗
我有一个表达:C# 需要正则表达式的帮助来解析表达式吗,c#,regex,C#,Regex,我有一个表达: ((((the&if)|sky)|where)&(end|finish)) 我需要的是在符号和单词之间留出一个空格,这样它就会像: ( ( ( ( the & if ) | sky ) | where ) & ( end | finish ) ) 我提出的正则表达式是(\w)*[(\&*)(\\\&*)],它只让我: ((((天空)哪里)和(结束)结束)) 我能从一位常驻的正则表达式大师那里得到一点帮助吗?我将在C#中使用此选项。编辑:既然您正
((((the&if)|sky)|where)&(end|finish))
我需要的是在符号和单词之间留出一个空格,这样它就会像:
( ( ( ( the & if ) | sky ) | where ) & ( end | finish ) )
我提出的正则表达式是(\w)*[(\&*)(\\\&*)]
,它只让我:
((((天空)哪里)和(结束)结束))
我能从一位常驻的正则表达式大师那里得到一点帮助吗?我将在C#中使用此选项。编辑:既然您正在使用C#,请尝试以下操作:
output = Regex.Replace(input, @"([^\w\s]|\w(?!\w))(?!$)", "$1 ");
在符合以下条件的任何字符后插入空格:
- 既不是字母、数字、下划线,也不是空白
- 或者是一个单词字符,后面没有另一个单词字符
- 而且不在一行的末尾
resultString=Regex.Replace(subjectString,@“\b|)(?您可以在每个单词和每个非单词字符后添加一个空格(因此查找\W|\W+
并将其替换为匹配项和空格。例如,在Vim中:
:s/\W\|\w\+/\0 /g
您可以使用:
(\w+|&|\(|\)|\|)(?!$)
这意味着一个单词,或者一个&
符号,或者一个(
符号,或者一个)
符号,或者一个|
符号后面没有字符串结尾;然后用匹配+空格符号替换匹配。使用c#可以像这样完成:
var result = Regex.Replace(
@"((((the&if)|sky)|where)&(end|finish))",
@"(\w+|&|\(|\)|\|)(?!$)",
"$+ "
);
现在result
变量包含一个值:
( ( ( ( the & if ) | sky ) | where ) & ( end | finish ) )
我发现这个网站有助于开发和测试正则表达式模式:这将导致像helloworld
这样的东西被转换成helloworld
(3个空格)。不过,我不确定这是否是一个问题。
var result = Regex.Replace(
@"((((the&if)|sky)|where)&(end|finish))",
@"(\w+|&|\(|\)|\|)(?!$)",
"$+ "
);
( ( ( ( the & if ) | sky ) | where ) & ( end | finish ) )