2016-09-28 326 views
0

我在adobe javascript中使用正則表達式來查找繪圖標題欄中的字符串。以數字(1),然後一個日期,那麼不同數量的單詞和4套縮寫正則表達式正則表達式匹配字符串

var re = new RegExp(1+"\\s\\d{1,2}\\.\\d{1,2}\\.\\d{2,4}\\s\\w+(?:\\s+\\w+){1,9}\\s([A-Z]{2,7})\\s([A-Z]{2,7})\\s([A-Z]{2,7})\\s([A-Z]{2,7})"); 

附圖標題塊示例的開始有以下幾點:

1 16年9月20日的變化對於該測試SB SB BW CR

0 16年7月29日批准建設MM SB BW GM

正則表達式的結果是

,建設MM SB BW GM 1名16年9月20日更改此測試SB SB

我需要的正則表達式是

1 16年9月20日樁號爲這個測試SB SB BW CR

誰能告訴我如何找到完全匹配以1開頭,而不是結果中顯示的隨機文本。

非常感謝您的任何幫助。

注:以下修改正則表達式的作品

var re = new RegExp(/^1\s\d{1,2}\.\d{1,2}\.\d{2,4}\s\w+(?:\s+\w+){1,10}\s([A-Z]{2,2})\s([A-Z]{2,2})\s([A-Z]{2,2})\s([A-Z]{2,2})$/g); 

我需要從文本到一個變量正則表達式的開始更換1次。

正則表達式始於^第一則JavaScript變量,則正則表達式

var re = new RegExp("//^"+firstWord+"\\s\\d{1,2}\\.\\d{1,2}\\.\\d{2,4}\\s\\w+(?:\\s+\\w+){1,9}\\s([A-Z]{2,4})\\s([A-Z]{2,4})\\s([A-Z]{2,4})\\s([A-Z]{2,4})$//g"); 

正則表達式是行不通的,任何人都可以告訴我如何Java變量與正則表達式結合?

+0

我不明白爲什麼結果在不知道圖紙標題塊如何存儲的情況下是「無序」的。但是如果你想匹配以'1'開始的東西,你需要在你的正則表達式的開頭加上'1'。 –

+0

請[編輯]你的問題,以顯示你如何使用正則表達式。此外,您顯示的結果還包括完全不在您的示例輸入中的字符(「CS」),這沒有任何意義 - 請仔細檢查您的示例輸入和結果。 – nnnnnn

+0

我已經修改了正在工作的修訂正則表達式的問題,需要幫助正則表達式分割下劃線 - 希望你能幫助 – JoJo

回答

1

我不知道爲什麼你的結果竟然這樣,但如果你只是做

var str = '1 20.09.16 CHANGES FOR THIS TESTING SB SB BW CR 0 29.07.16 APPROVED FOR CONSTRUCTION MM SB BW GM' 

var result = str.match(/1\s\d{1,2}\.\d{1,2}\.\d{2,4}\s\w+(?:\s+\w+){1,9}\s([A-Z]{2,7})\s([A-Z]{2,7})\s([A-Z]{2,7})\s([A-Z]{2,7})/g) 

這回

[ '1 20.09.16 CHANGES FOR THIS TESTING SB SB BW CR' ]

要得到字符串,您需要做的僅僅result[0]

+0

修改你的正則表達式var re = new RegExp(/^1 \ s \ d {1,2 } \ \ d {1,2} \ \ d {2,4} \ S \ W +。(?:\ S + \ W +){1,9} \ S([AZ] {2,7})\ S ([AZ] {2,7})\ S([AZ] {2,7})\ S([AZ] {2,7})$ /克);結果是:1 20.09.16本次測試的變化SB SB錯過了最後兩組縮寫,對於爲什麼會這麼想? – JoJo

+0

'$'表示行結束,而不是字符串結束,如果您有多行字符串,它可能不匹配,請嘗試'\ z'。 – davidhu2000

+0

感謝您的幫助編輯了正確的正則表達式結果正在工作的問題,需要下劃線正則表達式分割的幫助 - 希望你能提供幫助。 – JoJo