在javascript中,我需要獲取自定義標記中的文本。例如JavaScript正則表達式獲取文本之間的詞
[tag_ 轉推 ATTR = 「VAL」 attR2位= 「VAL」]
在這種情況下,我需要得到的單詞 「銳推」 只跳過所有其他文本和另一個例子是,
[tag_ 份額]
在這裏,我需要獲得「分享」一詞。
那麼在我的情況下獲取該標籤名稱的正則表達式是什麼?
在javascript中,我需要獲取自定義標記中的文本。例如JavaScript正則表達式獲取文本之間的詞
[tag_ 轉推 ATTR = 「VAL」 attR2位= 「VAL」]
在這種情況下,我需要得到的單詞 「銳推」 只跳過所有其他文本和另一個例子是,
[tag_ 份額]
在這裏,我需要獲得「分享」一詞。
那麼在我的情況下獲取該標籤名稱的正則表達式是什麼?
類似於/\[tag_([a-z0-9_]+)(?:\s+|\])/
var tag = '[tag_retweet attr="val" attr2="val"]';
var match = tag.match(/\[tag_([a-z0-9_]+)(?:\s+|\])/);
window.alert(match[1]); // alerts "retweet"
正則表達式來捕捉這將是:
/.*\[tag_(.*?)\W.*/
這任何字符匹配高達[tag_
結束,然後開始捕捉任何caracters直到遇到非單詞字符,那麼任何其他字符。比賽將只包含相關的部分。
這樣使用它:
myString.match(/.*\[tag_(.*?)\W.*/)[1]
基本上,你正在尋找[tag_
後會發生什麼,直到下一個空格(或標籤的末尾)
所以:
var tag = '[tag_retweet attr="val" attr2="val"]';
// or var tag = '[tag_share]';
var match = tag.match(/\[tag_(.*?)[\] ]/)[1];
我只得到'null' http://jsfiddle.net/vaakash/jf6Xe/或者我做錯了什麼? – 2012-03-27 13:40:35
顯然,JS正則表達式不理解'''如果它是角色類中的第一個字符,它就沒有特別的意義。請參閱編輯。 – 2012-03-27 13:41:56
你不需要'?'來阻止它貪婪嗎? ...'/.* \ [標記_(。*?)\ W。* /'(正則表達式不是我的東西,雖然:/) – musefan 2012-03-27 13:37:21
很可能 - 它不會傷害至少... – 2012-03-27 13:40:21
'。 *'前後都是不必要的... – 2012-03-27 13:42:36