用于匹配特殊字符的正则表达式没有空格或换行符

Posted

技术标签:

【中文标题】用于匹配特殊字符的正则表达式没有空格或换行符【英文标题】:RegEx for matching special chars no spaces or newlines 【发布时间】:2019-09-23 14:06:38 【问题描述】:

我有一个字符串,想使用正则表达式匹配所有字符,但没有空格。

我试图用空替换所有空格,使用:

Regex.Replace(seller, @"[A-z](.+)", m => m.Groups[1].Value);

//rating
var betyg = Regex.Replace(seller, @"[A-z](.+)", m => m.Groups[1].Value);`

我期待

的输出
"Iris-presenter | 5"

但是,输出是

"Iris-presenter" 

在这个看到也看到在这个demo。

字符串是:

<spaces>Iris-presenter
<spaces>|
<spaces>5

【问题讨论】:

抱歉,您输入的具体内容是什么? 无视您的解释,您似乎想将多个空格和换行符变成一个空格。我认为你需要更具体一点 可以在demo中看到输入。你完全正确 您可以替换匹配一个或多个whitespaces 的\s+ 并将它们替换为` `(一个空格)。最后.Trim()字符串 效果很好。现在我有this。我需要匹配“点:” 【参考方案1】:

好问题!我不太确定,这是否是您可能正在寻找的。 This expression 但是与您的输入字符串匹配:

^((?!\s|\n).)*

图表

图表显示了它的工作原理:

编辑

根据revo的建议,表达式可以简化很多,因为

^((?!\s|\n).)* 等于 ^((?!\s).)* 并且两者都等于 ^\S*

【讨论】:

仅供参考 ^((?!\s|\n).)* 等于 ^((?!\s).)* 并且两者都等于 ^\S*【参考方案2】:

我使用(\s(.*?)) 让它工作。这将删除所有看到的空格和新行 here

【讨论】:

以上是关于用于匹配特殊字符的正则表达式没有空格或换行符的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式转义符

没有空格或特殊字符的正则表达式[关闭]

lua正则匹配中\t是啥意思?

正则表达式

正则表达式语法表

正则表达式符号解释表