2011-01-10 4 views
0

Может кто-нибудь сказать мне, как я могу принять это: (King's_Cross_St_Pancras, Farringdon, Hammersmith_&_City_Line)RegEx помощь tokenizing строки

И разделить ее на:

array[0]: King's_Cross_St_Pancras 
array[1]: Farringdon 
array[2]: Hammersmith_&_City_Line 

регулярного выражение следует учитывать также <> несловообразующих символов тоже. Я пытался сделать регулярное выражение с помощью:.. "\b(<>&')? ".. это однако совершенно бесполезно

Пожалуйста, помогите

+0

Platform = Java – Alex

+0

yourString.split ("") делает именно то, что; не так ли? –

ответ

1

Вы можете сделать это проще и быстрее без RegEx:

String str = "(King's_Cross_St_Pancras, Farringdon, Hammersmith_&_City_Line)"; 
String result[] = str.substring(1, str.length()-1).split(","); 
+0

Вы правы, исправили его. Спасибо, что заметили. :) – magnattic

+0

cheers pude оценили помощь. RegEx довольно сложны – Alex

5

Там нет необходимости использовать регулярное выражение здесь обирать () с помощью String.substring(), а затем разбить строку в жетоны использование String.split() Хотя технически это также является регулярным решением, как String.split() принимает регулярное выражение :)

String s = "(King's_Cross_St_Pancras, Farringdon, Hammersmith_&_City_Line)"; 
s = s.substring(1, s.length()-1); 
String tokens[] = s.split(", "); 

Результат:..

King's_Cross_St_Pancras 
Farringdon 
Hammersmith_&_City_Line 

http://ideone.com/zSDN5

+0

'String.prototype.length' является' Number', а не 'Function' ... – Hello71

+0

@ Hello71 Нет, это не так. Вы путаете строки с массивами. – marcog

+0

Нет, я не. Я запутываю Java с JavaScript. : | – Hello71