在谈到JavaScript中的正则表达式与PCE中的正则表达式有些不同之后,我坚持以下内容。JavaScript正则表达式得到字符串后的数字
在PHP I extract a number后 X:
(?x)[0-9]+
在JavaScript中相同的正则表达式不起作用,由于无效组从捕获括号差引起。
所以我想实现同样的功能微不足道,but I keep getting x和数量:
(?:x)([0-9]+)
如何捕捉到数 X之后不包括X?
在谈到JavaScript中的正则表达式与PCE中的正则表达式有些不同之后,我坚持以下内容。JavaScript正则表达式得到字符串后的数字
在PHP I extract a number后 X:
(?x)[0-9]+
在JavaScript中相同的正则表达式不起作用,由于无效组从捕获括号差引起。
所以我想实现同样的功能微不足道,but I keep getting x和数量:
(?:x)([0-9]+)
如何捕捉到数 X之后不包括X?
你可以试试下面的正则表达式:(?!x)[0-9]+
小提琴这里:https://jsfiddle.net/xy6x938e/1/
这是假设你正在寻找一个x再跟一个数字,它使用一个捕获组捕获只是数字部分。
var myString = "x12345";
var myRegexp = /x([0-9]+)/g;
var match = myRegexp.exec(myString);
var myString2 = "z12345";
var match2 = myRegexp.exec(myString2);
if(match != null && match.length > 1){
alert('match1:' + match[1]);
}
else{
alert('no match 1');
}
if(match2 != null && match2.length > 1){
alert('match2:' + match2[1]);
}
else{
alert('no match 2');
}
其实这是错误的,它会匹配任何数字,忽略它的x,y或z –
更新小提琴https://jsfiddle.net/xy6x938e/1/ – jimplode
(\ d +)试试这个! 我对这个工具测试与x12345 http://www.regular-expressions.info/javascriptexample.html
你仍然可以使用独特的模式(?!...)
所以,你的例子将是/(?!x)[0-9]+/
。请尝试以下操作:
/(?!x)\d+/.exec('x123')
// => ["123"]
这个正则表达式的问题(正如在jimplode中评论的那样不管键是'x','y'还是'z',它都会匹配*后面的任何*号。请亲自看看:https://regex101.com/r/oP2eR3/1 –
这应该起作用(?!x)([0-9] +)。 – gothical
@ gothical是的,它的确如此! –