1

我正在尝试用常规表达式替换字符串中的某些内容,但没有成功。

我正在尝试替换任何出现的[后跟8个字符并以]

例如[F2283D02]空格替换。

4

5 回答 5

3

我认为您正在查看十六进制字符串,因此您的正则表达式将是

\[[0-9A-F]{8}\]
^            ^ escapes required as [ and ] are regex-metacharacters
于 2013-03-05T07:42:47.460 回答
2
string result = Regex.Replace(input, @"\[[^\]]{8}\]", "");

[ 寻找开头的 '['

[^]]{8} 查找不是 ']' 的 8 个连续字符

] 寻找结束的 ']'

于 2013-03-05T07:43:46.760 回答
1
 string input = "Replace [fbzdkdf] with empty";
 input = Regex.Replace(input, @"\[\w{8}\]","");
 Console.WriteLine(input);

输出:替换为空

解释

[ :反斜杠在正则表达式中转义了肉字符 [ 。
\w{8}:匹配任意 8 个字符。
] : 转义元字符 ]

  • 转义意味着关闭下一个字符的特殊含义。反斜杠进行转义。



不要忘记使用

using System.Text.RegularExpressions;
于 2013-03-05T07:55:30.113 回答
0

试试下面的表达式:

@"\[([a-zA-Z0-9]{8})\]"

请参阅沙盒

于 2013-03-05T07:44:09.723 回答
0

你试过什么?你试过dis:

(?<=\[).{8}(?=\])

一些解释:

.{8}- 任何类型的八个字符

(?<=\[)(?=\])- 我们寻找被 '[]' 包围的字符,但我们不需要找到括号本身,只需要知道这些字符是否在括号中

红色的

于 2013-03-05T07:45:40.637 回答