【问题标题】: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。我需要匹配“点:”

标签: c# regex regex-lookarounds regex-greedy


【解决方案1】:

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

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

图表

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

编辑

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

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

【讨论】:

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

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

【讨论】:

    猜你喜欢
    • 2012-10-03
    • 2021-11-03
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多