输入字符串(3)示例:
+31 +31 31 888 00 98
+236+2323902341122
+41 +41416185825
想要输出:
+31 31 888 00 98
+2323902341122
+41416185825
我如何删除第一个+和第二个+之间的字符。没有Regex还有办法吗?无论如何,Regex也会没问题。
我试过了:
int indexUP = myString.IndexOf('[');
int indexClose = myString.IndexOf(']', indexUP + 1);
string results = myString.Substring(0, indexUP ) + myString.Substring(indexClose + 1);
但这仅适用于两个不同的角色。我的分隔符是'+'。
答案 0 :(得分:1)
这应该可以解决您的问题。您需要在第一次出现后找到+符号的索引。
string str = "+31 +31 31 888 00 98";
int index = str.IndexOf('+', str.IndexOf('+')+1);
if(index>0)
str = str.Substring(index);
答案 1 :(得分:1)
这是另外一个。解决方案通用的任何可能的预编号' +'符号。
string myString = "+236+2323902341122";
List<char> list= myString.ToList();
int index = list.FindLastIndex(x=> x=='+');
string resultString = myString.Substring(index);
答案 2 :(得分:1)
感谢@petelids谁指出,我的初始试用代码有效 - 只需稍加改动:
int indexUP = myString.IndexOf('+');
int indexClose = myString.IndexOf('+', indexUP + 1);
string results = myString.Substring(0, indexUP ) + myString.Substring(indexClose).Trim();
答案 3 :(得分:1)
使用正则表达式:
var x = new Regex(@"([\+]{1}.*)([\+]{1}.*)").Match(s).Groups[2];
其中s
- 输入字符串。
答案 4 :(得分:1)
在Regex对象上使用Replace方法:
Regex myRegex = new Regex(
@"\+[\d\s]*\+",
RegexOptions.IgnoreCase | RegexOptions.Multiline
);
string example =
@"+31 +31 31 888 00 98
+236+2323902341122
+41 +41416185825";
return myRegex.Replace(example, "+");
这将用一个加号替换所有包含数字和空格的符号,应该是你想要的。
输出如下:
+31 31 888 00 98
2323902341122个
41416185825