In general, to match some pattern not followed with a digit, you need to add a (?!d)
/ (?![0-9])
negative lookahead to the expression:
[(?!d)
[(?![0-9])
^^^^^^^^^
See the regex demo. This matches any [
symbol that is not immediately followed with a digit.
Your current regex pattern is overloaded with capturing groups, and if we remove those redundant ones, it looks like ([)([^0-9])
- it matches a [
and then a char other than an ASCII digit.
You may use
(?<=[)D
or (if you want to only match the ASCII digits with the pattern only)
(?<=[)[^0-9]
See the regex demo
Details:
(?<=[)
- a positive lookbehind requiring a [
(but not consuming the [
char, i.e. not returning it as part of the match value) before...
D
/ [^0-9]
- a non-digit. NOTE: to only negate ASCII digits, you may use D
with the RegexOptions.ECMAScript
flag.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…