我有這樣的文字。javascript正則表達式示例 - 提取直到出現字符?
Mr John Smith , Mr James Smith +(21)-(21)-12345678, 12345678, 12345678 +(21)-12345678, 12345678, 12345678 SomeTextHereAlso +(21)-(22)-12345678 www.somewebaddress.co.uk Some Title, Some Place , Some Town,Some Suburb, City - 100000
我想在JavaScript中使用正則表達式提取每個字符串。我發現了一些例子,今天早上他們工作。現在我不知道他們爲什麼不再工作了。
要提取
Mr John Smith , Mr James Smith
我用這個。
/\S(.*)\+/ and /\S(.*?)\+/
這沒有奏效。我無法弄清楚爲什麼。
提取該
+(21)-(21)-12345678, 12345678, 12345678 +(21)-12345678, 12345678, 12345678 SomeTextHereAlso +(21)-(22)-12345678
我用這個。
/\+(.*)(?=www.)/
這確實奏效。
而對於URL我用
/www(.*?)(?=\s\s)/
而這個工程太。
唯一的問題是第一個例子應該提取所有的字符,直到第一個+,但它提取所有的字符,直到最後+。
我查了http://gskinner.com/RegExr/?2tr5t和我在這裏展示的例子工作。有沒有更多類似的例子可以幫助我,因爲我查看了代碼並沒有發現任何錯誤。
如果正則表達式很好,那麼我怎樣才能使用這個例子的IndexOf()方法來提取我想要的?
@ missingno的[解決方案](http://stackoverflow.com/a/11086693/990363)的作品,但它不應該是必要的:而你的第一個例子('\ S(。*)\ +')使用一個*貪婪的量詞*,它將盡可能多地抓住儘可能多的字符,同時仍然匹配,因此以最後一個「+」結尾,第二個('\ S(。*?)\ +')使用一個* lazy量詞*,儘量使用最少的重複次數來嘗試匹配。那個人應該並且在第一個「+」(例如[spec](http://perldoc.perl.org/perlre.html#Regular-Expressions)中停止),我的控制檯也同意這一點。 – kopischke
我用[此解決方案] [1]幫我解決了我的問題。所以我的項目將結合RegEx和IndexOf()方法。 我不知道爲什麼RegEx在這件事上失敗。謝謝你們。 [1]:http://stackoverflow.com/questions/4690617/javascript-to-match-substring-and-strip-everything-after-it – macroscripts