regex表达式获取字符串后的整数

时间:2016-08-25 10:42:00

标签: regex

我很难在JavaScript中编写一个正则表达式,我确信这是非常基本的,但我很难理解它。 基本上我需要在url中的字符串后面只读取整数并将答案存储到变量中。例如: www.examplepage.com/?0,1,3,north12 所以从那个url我需要在字符串“north”之后只获取整数,但是当我这样做时,我似乎只能返回“north12”而不是“12”。 我到目前为止的正则表达式是:/ north(\ d +)/

1 个答案:

答案 0 :(得分:0)

以下java语句将只返回一个数字。它使用积极的先行断言。

    String s = "www.examplepage.com/?0,1,3,north12";
    Pattern p = Pattern.compile( "(?<=north)[0-9]+" );
    Matcher m = p.matcher( s );
    if ( m.find() ) {
        System.out.println(m.group().toString());
    }

>>12

正则表达式为(?<=north)[0-9]+

java脚本中的walkaround将是:

function removeLeadingCharacters(string){
  return string.replace(/.*north(?=[0-9]+)/g, ""); // $& means the whole matched string
};
function revStr(str) {
    return str.split('').reverse().join('');
}
function removeTrailingCharacters(string){
  return revStr(revStr(string).match(/[0-9]+$/g, " ")[0]); // $& means the whole matched string
};

window.alert(removeTrailingCharacters(removeLeadingCharacters("asdadasdnorth12asda")));

这将仅打印数字。你可以把它变成一个变量。在声明要调试的字符串时,请记住要逃避"