2016-09-28 452 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