所以在结束时(经过几天的调试)我发现了一个问题.它根本不在正则表达式中:/.它接缝我正在修剪ekstra白色空间
intput= Regex.Replace(input, "\\s+", " ");
Run Code Online (Sandbox Code Playgroud)
所以所有新行都替换为"".笨!主持人,如果不需要请删除!
我有正则表达式来标记一些文本,它看起来像这样:
"(?<html>Ç)|
(?<number>\\d+(?:[.]\\d+)?(?=[][ \f\n\r\t\v!?.,():;\"'„Ç]|$))|
(?<other>(?:[^][Ç \f\n\r\t\v!?.,():;\"'„A-Za-z??š?ž??Š?ŽäöÖü][^ Ç\f\n\r\t\vA-Za-z??š?ž??Š?ŽäöÖü]*)?[^][ Ç\f\n\r\t\v!?.,():;\"'„A-Za-z??š?ž??Š?ŽäöÖü](?=[][!?.,():;\"'„]*(?:$|[ Ç\f\n\r\t\v])))|
(?<word>(?:[^][ Ç\f\n\r\t\v!?.,():;\"'„][^ Ç\f\n\r\t\v]*)?[^][ Ç\f\n\r\t\v!?.,():;\"'„])|
(?<punctuation>[][ \f\n\r\t\v!?.,():;\"'„])"
Run Code Online (Sandbox Code Playgroud)
问题出在这一部分:(?<punctuation>[][ \f\n\r\t\v!?.,():;\"'„]).因此,当使用输入文本时,"\n\n"它会在标点匹配中进行分组:" "," "- 换句话说,空格和空格......我不知道为什么?
我可能是错的,但你需要将String as String交给RegEx ...意味着你需要转义反斜杠.
... (?=[][ \\f\\n\\r\\t\\v!?.,():;\\" ...
Run Code Online (Sandbox Code Playgroud)
或者C#将使用RegEx-Statement中的换行符替换\n.
编辑:也可以使用文字字符串,但需要用@开头标记(参见Martin的回答).