繁体   English   中英

正则表达式,用于替换字符串中的[数字]

[英]Regex that Replaces [number] from String

我想从字符串中删除[number];

输入示例为:

1-家庭住址[我的第一个家庭住址#12] [1350]
2-这里有一些文字(这里有一些文字)
3-你好多洛尔坐amet [科斯特街74号] [1008]

输出示例为:

1-家庭住址[我的第一个家庭住址#12]
2-这里有一些文字(这里有一些文字)
3-您好多洛尔坐amet [科斯特街74号]

我尝试过的

var pattern = @"^[\d+]$";
var result = Regex.Replace(value, pattern, "");

我想删除带有二次符号“ [ ”&“ ] ”的粗体文本,如果它根本不包含它,则保持原样(请参见第二个示例)。

您尝试的模式"^[\\d+]$几乎是正确的!该模式的问题是您使用的锚点^...$基本上表示该模式仅与括号中封装的数字匹配,如果它们是输入中仅包含字符串, 有关更多技术摘要,请参见锚点上的MSDN文档。

模式\\[\\d+\\]将匹配封装在方括号中的任何数字。

使用Regex.Replace :-

input = Regex.Replace(input, @"\[\d+\]", string.Empty);

请尝试以下操作:

input = "home address [my first home address #12] [1350]"
string pattern = @"\[\d+\]";
string replacement = " ";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);

更新:(在使用某些代码更新问题之后...)

var pattern = @"^[\d+]$";

此模式仅适用于数字。 以下模式应该适合您:

var pattern = @"\[\d+\]";

对于您的示例,您不需要正则表达式。

string address = "home address [my first home address #12] [1350]";

if(address.Count(x => x == '[') >= 2))
   address = address.Substring(0, address.LastIndexOf('['));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM