我想删除包含6到8位数字的数字,所以我使用的正则表达式是: \ b \ d {6,8}
它工作正常,但是,如果我有两个用下划线(_)分隔的数字,例如 1234567890_12345678901234567890 我也想删除它。 我必须使用\ b(边界)。
对我来说这似乎是一个条件:
匹配6到8位数之间的数字,但是如果你看到用下划线分隔的两个数字也匹配它们(不管每个数字中的位数)。
匹配:12345678
匹配:12345678934567_1234567890123456789
匹配:123_23
不匹配:12345
我需要一个处理这两种情况的正则表达式。
非常感谢。
答案 0 :(得分:3)
答案 1 :(得分:1)
您可以使用此
^(\d+_\d+)|(\d{6,8})$
这个正则表达式包含两部分:
(\d+_\d+)
涵盖" _"符号;
(\d{6,8})
涵盖其他案例
答案 2 :(得分:0)
你也可以尝试这个:
\b\d+(?:\d{4,6}|_)\d+\b
如果您想允许多个_
字符,请尝试以下字符:
\b\d+(?:\d{4,6}|_[\d_]*)\d+\b
第二个也将与此匹配:12345678934567_1234567890_123456789