[英]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.