如何在正则表达式中使数值范围从-47到1123的负/正?

时间:2019-04-24 12:48:15

标签: regex

我想仅使用4个替代项(|)来将负数转换为正数。

这是我到目前为止所做的:

var stores = DbContext.ProductStores;
result = from store in stores
        join product in result on product.ProductId equals store.ProductId
        orderby store.Status
        select product;

我希望范围接受-47至1123之间的数字。 谢谢。

1 个答案:

答案 0 :(得分:1)

这并不容易...但是我想这可以解决问题。

^(-4[0-7]|-[0-3]?[0-9])$|^(112[0-3]|11[01][0-9]|10[0-9]{2}|0?[0-9]{1,3})$

实时观看: https://regex101.com/r/bFzBwZ/1

const regex = /^(-4[0-7]|-[0-3]?[0-9])$|^(112[0-3]|11[01][0-9]|10[0-9]{2}|0?[0-9]{1,3})$/mg;
const str = `1123
1124
47
1122
0
11
-12
-78
-47
-33
-48
-11
-1
-3
-1
-2
-3
-4
-5
-14
-211
-471
-46`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}