标签: regex
我的文件包含以下行:
528627266255,ANY VALUE,ANY VALUE,812323432-1 736353553,ANY OTHER VALUE,9123234321
我需要捕获以10或9开头的数字,如果找到则忽略“ - ”字符。
我尝试使用'[8-9]?[8-9]\d{8}-\d'正则表达式并在数字为“ - ”时正常工作,但在不包含此减号时则不行。
[8-9]?[8-9]\d{8}-\d
我的问题是,如何使用或不使用减号来捕获这两个案例?
答案 0 :(得分:1)
这是一个有效的regex,显示与您的测试数据的以下正则表达式的多个匹配项:
[8-9]?[8-9]\d{8}-?\d
如果您不希望开头的数字也匹配,那么
\b[8-9]?[8-9]\d{8}-?\d
here
答案 1 :(得分:0)
这似乎就是你说的。
# [89](?:-?\d){9} [89] # Starts with 8 or 9 (?: -? \d ){9} # Nine more digits, ignore minus sign
答案 2 :(得分:0)
您还可以使用以下正则表达式:
\b([8-9]{1}[0-9-]{9,10})\b