2013-04-30 30 views
0

我試圖製作一個正則表達式來獲取< ... >標記中的第一個單詞。我已經有一個獲取標籤中的所有單詞。我使用它:使用正則表達式獲取標記中的第一個字

/<(.*?)>/ 

我的問題是,我可以使用正則表達式在標籤中獲得第一個單詞嗎?

+1

這是HTML?如果是這樣,只需將其解析爲文檔片段並使用'elem.tagName'。 – Blender 2013-04-30 00:49:45

+0

這是一個使用正則表達式的解析器。 – user2228462 2013-04-30 00:50:32

+0

@ user2228462,接受的解決方案是錯誤的。看看我的答案,知道爲什麼。 – plalx 2013-04-30 01:33:26

回答

2

這裏有一個工作的解決方案:/<([^>\s]+)[^>]*>/

0

在簡單情況下/<(\S+)/可能是你在找什麼,或者你可能會更正式和實際列出只允許在標籤名稱中的字符。

0
var tag = "< hello world>"; 
var regex = /<\s*(\S*)\b/; 

if (match_arr = tag.match(regex)) { 
    alert("yes:" + match_arr[1]); 
} 

有沒有辦法在標籤的第一個字後,讓每一個字?

var tag = "< hello world goodbye >"; 
var regex = /<(.*?)>/; 

if (match_arr = tag.match(regex)) { 
    var str = match_arr[1].trim(); 
    var words = str.split(" "); 
    console.log("-->" + words.slice(1).join(" ") + "<--"); 
} 

--output:-- 
-->world goodbye<-- 
+0

其實,如果你的字符串已經只是一個標籤,你可以用正則表達式:/ \ b(\ S *)\ b/with match()。 – 7stud 2013-04-30 01:31:47

+0

您必須定義「單詞」的含義。你好=「世界」一個字?或者是這兩個字?引號是單詞的一部分嗎? – 7stud 2013-04-30 01:35:59

相關問題