正则表达式提取满足指定条件的字符串
Regular expression to extract string that meets specified criteria
如果子字符串满足以下条件,我需要从一行中提取子字符串:
-以 3 开头
- 所有字符都是数字或破折号。如果全是数字那么长度从 10 个字符到 14,否则,如果包括破折号,可以到 19
我试过使用
Dim m As Match = Regex.Match(line.ToLower().Trim(), _
"33[\d-]{10,19}", _
RegexOptions.IgnoreCase)
但是上面的m.Successreturns是假的
任何人都可以帮助修复我的正则表达式吗?
这个^3(?:\d{9,13}|[\d-]{9,18})$
细分:
^ # BOS
3 # Starts with '3'
(?: # Cluster
\d{9,13} # All digits, total 10 - 14
| # or,
[\d-]{9,18} # Digits or dashes, total 10 - 19
) # End cluster
$ # EOS
试试这个模式
^(?=(-?\d){10,14}$)3[0-9-]{9,18}$
如果子字符串满足以下条件,我需要从一行中提取子字符串:
-以 3 开头 - 所有字符都是数字或破折号。如果全是数字那么长度从 10 个字符到 14,否则,如果包括破折号,可以到 19
我试过使用
Dim m As Match = Regex.Match(line.ToLower().Trim(), _
"33[\d-]{10,19}", _
RegexOptions.IgnoreCase)
但是上面的m.Successreturns是假的
任何人都可以帮助修复我的正则表达式吗?
这个^3(?:\d{9,13}|[\d-]{9,18})$
细分:
^ # BOS
3 # Starts with '3'
(?: # Cluster
\d{9,13} # All digits, total 10 - 14
| # or,
[\d-]{9,18} # Digits or dashes, total 10 - 19
) # End cluster
$ # EOS
试试这个模式
^(?=(-?\d){10,14}$)3[0-9-]{9,18}$