如果内部没有 int,如何获取第一个字符:
我需要查看所有在 '['
后面没有整数的地方。
例如:
[abc] pass
[cxvjk234] pass
[123] fail
现在,我有这个:
((([[])([^0-9])))
它获取前 2 个字符,而我只需要一个。
最佳答案
一般,要匹配一些后面没有数字的模式,你需要添加一个(?!\d)
/(?![0-9])
negative lookahead表达:
\[(?!\d)
\[(?![0-9])
^^^^^^^^^
参见 regex demo .这匹配任何 [
没有紧跟数字的符号。
您当前的正则表达式模式因捕获组而重载,如果我们删除那些冗余的,它看起来像 (\[)([^0-9])
- 它匹配 [
然后是 ASCII 数字以外的字符。
你可以使用
(?<=\[)\D
或者(如果您只想将 ASCII 数字与模式匹配)
(?<=\[)[^0-9]
参见 regex demo
详细信息:
-
(?<=\[)
- 需要[
的正面回顾(但不使用[
字符,即不将其作为匹配值的一部分返回)... -
\D
/[^0-9]
- 一个非数字。 注意:如果只取反 ASCII 数字,您可以使用\D
与RegexOptions.ECMAScript
旗帜。
关于c# - 正则表达式得到一个字符后面没有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39351442/