2016-08-25 28 views
0

JavaScriptで正規表現を書くのが止まっていますが、それはかなり基本的ですが、私はその周りに頭を浮かべています。正規表現が文字列の後に整数を取得する

基本的には、URL内の文字列の後ろにある整数だけを取得し、答えを変数に格納する必要があります。たとえば、 www.examplepage.com/?0,1,3,north12

したがって、私は文字列 "north"の後に整数だけを取り入れる必要があります。 "12"ではなく "north12"を返します。

私がこれまで持っている正規表現は次のとおりです。/north(\d+)/

+2

あなたの質問に投稿しない限り現在の正規表現が表示されません... –

+0

キャプチャグループを使用 –

+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"))); 

これが唯一の番号が印刷されます。それを変数に入れることができます。デバッグ用の文字列を宣言するときは、"をエスケープしてください。

+0

ここに私が達成しようとしている基本的な例があります。しかし、私はnorth1しか得ることができず、何らかの理由で出力がnorth1,1ですか? ' \t \t Link \t \t ' –

関連する問題