如果第一个模式失败,正则表达式匹配另一个模式
RegEx match another pattern if first pattern fails
这是我失败的逻辑:
If the input is 14 characters, return characters 9 through 13. Otherwise, return everything.
(?<=^.{8}).{5}(?=.$)
如我所料,将字符 9 到 13 作为结果集传递。如果我将 |.*
附加到 RegEx 以生成 (?<=^.{8}).{5}(?=.$)|.*
,它总是 returns 一切。我显然做错了。
有输入吗?
^(?=.{14}$).{8}(.*).$|^.*$
试试这个。当字符串是 14 characters.See 演示时,这将来自 9 to 13
的 return 个字符。
我确定 Regex 是必需的,但由于您只处理字符串长度,因此您也可以使用子字符串
input.Length == 14 ? return input.Substring(8,5) : input;
这是我失败的逻辑:
If the input is 14 characters, return characters 9 through 13. Otherwise, return everything.
(?<=^.{8}).{5}(?=.$)
如我所料,将字符 9 到 13 作为结果集传递。如果我将 |.*
附加到 RegEx 以生成 (?<=^.{8}).{5}(?=.$)|.*
,它总是 returns 一切。我显然做错了。
有输入吗?
^(?=.{14}$).{8}(.*).$|^.*$
试试这个。当字符串是 14 characters.See 演示时,这将来自 9 to 13
的 return 个字符。
我确定 Regex 是必需的,但由于您只处理字符串长度,因此您也可以使用子字符串
input.Length == 14 ? return input.Substring(8,5) : input;