【问题标题】:Regex Replace Match Found in String在字符串中找到正则表达式替换匹配
【发布时间】:2013-09-27 04:32:56
【问题描述】:

我正在使用正则表达式在字符串中查找模式。找到匹配项后,我想将其从现有字符串中删除。

例如:

starting string ex: "Billed Hours (.5);" 
converted string: "Billed Hours"

我使用的正则表达式模式是 @"([a-z.]+);$" - 不确定这是否正确,我想检查括号内是否只有整数或小数。如果模式匹配则删除括号、里面的值以及后面的分号。

这是我目前所拥有的:

string testString = "Billed Hours (.5);"
testString = Regex.Replace(testString, @"\([a-z.]+\);$", "");

这是在 C# 中。

有什么想法吗?

【问题讨论】:

  • 您目前缺少数字。
  • 你使用什么语言?

标签: c# regex


【解决方案1】:

试试正则表达式:

@"\s+\([^)]+\);$"

然后什么都替换。

\s+ 是为了避免修剪空格,[^)]+ 匹配除右括号之外的任何字符。

【讨论】:

  • Jerry 所以你是说我应该试试这个?字符串 newString = Regex.Replace(testString, @"\s+([^)]+);$", "");我仍然没有得到任何替换和相同的原始字符串。
  • @Aaron 呃,这不是我建议的正则表达式...我的意思是:string newString = Regex.Replace(testString, @"\s+\([^)]+\);$", "");
  • 在我的回复中发布了错误的正则表达式。一切正常,感谢 Jerry。
【解决方案2】:

考虑...

string testString= Regex.Replace(testString, @"\(\d*\.?\d*]*\);$", "");

【讨论】:

  • 字符串是相同的,并且没有删除括号、值或分号。想知道我做错了什么......
猜你喜欢
  • 2015-11-30
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
  • 2015-01-04
  • 2011-09-02
  • 1970-01-01
相关资源
最近更新 更多