Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式获取一个字符,后面不跟数字_C#_Regex - Fatal编程技术网

C# 正则表达式获取一个字符,后面不跟数字

C# 正则表达式获取一个字符,后面不跟数字,c#,regex,C#,Regex,如果内部没有int,如何获取第一个字符: 我需要看看所有的地方都有'['后面没有整数 例如: [abc] pass [cxvjk234] pass [123] fail 现在,我有这个: ((([[])([^0-9]))) 它获取前两个字符,而我只需要一个。一般来说,要匹配一些没有数字后跟的模式,需要在表达式中添加一个(?!\d)/(?![0-9]): \[(?!\d) \[(?![0-9]) ^^^^^^^^^ 请参阅。这与任何未紧跟数字的[符号匹配 您当前的正则表达式模式因捕获组

如果内部没有int,如何获取第一个字符:

我需要看看所有的地方都有
'['
后面没有整数

例如:

[abc] pass
[cxvjk234] pass
[123] fail
现在,我有这个:

((([[])([^0-9])))

它获取前两个字符,而我只需要一个。

一般来说,要匹配一些没有数字后跟的模式,需要在表达式中添加一个
(?!\d)
/
(?![0-9])

\[(?!\d)
\[(?![0-9])
  ^^^^^^^^^
请参阅。这与任何未紧跟数字的
[
符号匹配


您当前的正则表达式模式因捕获组而超载,如果我们删除这些冗余组,它看起来像
(\[)([^0-9])
-它匹配
[
,然后是ASCII数字以外的字符

你可以用

(?<=\[)\D

(?一种可能的解决方案是:

\[\D[^]]*\]
# look for [
# \D - not a digit
# anything not ], zero or more times
# followed by ]

请参阅。

不要使用太多的括号。括号用于分组和确定返回的匹配项

\[([^0-9])
(?:(?:(?:\[)([^0-9])))
如果您确实需要使用括号,请对该组使用
(?:…)
,但不会作为匹配的一部分返回

\[([^0-9])
(?:(?:(?:\[)([^0-9])))

也许您正在搜索的是
\[([^0-9])

你希望
[123abc]
通过吗?

([])
?为什么不直接使用
\[/code>?使用
@)(?你能检查一下我们的答案,看看它们是否适合你吗?你的描述有点不清楚。