回答
正则表达式是很容易的,但为什么不使用Trim()
:
var str = "|2P|1|U|F8|";
str = str.Trim(new[] {'|'});
或只是不new[] {...}
:
str = str.Trim('|');
Ø本安输出:
的情况下有前/后空格,你可以使用链式修剪:
var str = "\r\n |2P|1|U|F8| \r\n";
str = str.Trim().Trim('|');
输出将是相同的。
你可以简单地写'.Trim('|')'。如果第一个或最后一个值可能为空,这将不起作用:'|| 1 | U | F8 |',但这可能不是问题。 – Kobi
@Kobi:老习惯:)我更新了代码,以便返回预期结果,即使是前导/尾随空格。 –
这不是一个verbatinum模式。它是[verbatim字符串文字](https://msdn.microsoft.com/en-us/library/aa691090%28v=vs.71%29.aspx)。 –
只是删除的起始和结束符。
@"^\||\|$"
使用下面的正则表达式,然后用空字符串替换匹配。
Regex rgx = new Regex(@"^\||\|$");
string result = rgx.Replace(input, "");
当您处理多行时使用多线修改器m
。
Regex rgx = new Regex(@"(?m)^\||\|$");
由于|
是在正则表达式的特殊字符,你需要按顺序来匹配文字|
符号逃离这个。
string input = "|2P|1|U|F8|";
foreach (string item in input.Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
{
Console.WriteLine(item);
}
结果是:
2P
1
U
F8
对于completionists-起见,你也可以使用Mid
Strings.Mid("|2P|1|U|F8|", 2, s.Length - 2)
这将从第二个字符到先前切出的部分将持续一个并产生正确的输出。
您可以使用String.Substring
:
string str = "|2P|1|U|F8|";
string newStr = str.Substring(1, str.Length - 2);
我假设在某些时候你会想分析该字符串以提取其“|
”分离的组分,所以这里去另一种选择是去那个方向:
string.Join("|", theString.Split(new[] {'|'}, StringSplitOptions.RemoveEmptyEntries))
- 1. 正则表达式除去第一和最后一个字符
- 2. 忽略正则表达式匹配中的第一个字符
- 3. 第一个和最后一个名字的正则表达式
- 4. php正则表达式匹配第一个和最后一个
- 5. 第一个字符和最后一个字符的正则表达式条件
- 6. Ruby正则表达式忽略第一个有效的(?)匹配
- 7. 正则表达式,禁止点(。)作为最后一个字符
- 8. 正则表达式来第一个括号后和最后一个括号
- 9. 的正则表达式最后一个字符和字符串
- 10. 忽略字符串中间的一个词,正则表达式
- 11. 正则表达式获得第n个字符忽略空间
- 12. 正则表达式 - 从第n个单词到最后一个
- 13. 正则表达式的字符串的最后一个字的第一个字和第一个字母
- 14. 正则表达式匹配第一个和最后一个字或词
- 15. 正则表达式是一个问号会忽略一切
- 16. Python正则表达式在第一个“|”后停止比赛
- 17. 如何忽略这个正则表达式中的第一个匹配
- 18. 正则表达式来替换第一行和最后一行?
- 19. 正则表达式:一个第一次出现和另一个
- 20. 正则表达式忽略字符串
- 21. 正则表达式忽略字符串
- 22. 正则表达式忽略换行符
- 23. Java正则表达式忽略'。'符号
- 24. 如何使用正则表达式和Javascript获取字符串的第一个和最后一个字符
- 25. 正则表达式的第一个和最后一个字符必须是一个数字
- 26. 正则表达式的第一个字和一个字符串的最后一个字
- 27. 如何编写一个ruby正则表达式,仅在第一个和最后一个位置删除字符?
- 28. 为什么我的正则表达式中的最后一个表达式连接到第一个表达式?
- 29. Javascript正则表达式忽略第一捕获组
- 30. 正则表达式忽略/排除第一行
你不需要正则表达式来做到这一点 –