2016-08-23 2 views
0

Мне нужно регулярное выражение, чтобы захватить слово части строки, которая является верблюжьим футляром, и может иметь в себе аббревиатуру. Другими словами, я хочу разбить строку верблюда в свои слова и акронимы.Регулярное выражение для совпадения слов и акронимов в строке верблюда

Например:

SomeABCWords

... имеет три захвата группы

Некоторые ABC Слова

До сих пор я нашел это регулярное выражение:

((?:^|[A-Z])[a-z]+) 

Но это не будет обрабатывать аббревиатуры и будет просто соответствовать «Некоторым» и «Словам», ,

+0

Что вы имеете в виду под "матч"? Поскольку ваше регулярное выражение соответствует 'Some' и' Words', оно должно соответствовать целой строке. Вы хотите, чтобы строка _split_ вводилась в отдельные слова? – Chris

+0

'[A-Z] [a-z] + | [A-Z] + (?! [A-z])' –

+0

@ Крис да, я хочу разбить строку на слова и аббревиатуры –

ответ

1

Один из способов решения этой проблемы - захват аббревиатур с добавлением негативного внешнего вида.

[A-Z][a-z]+|[A-Z]+(?![a-z]) 

Regular expression visualization

Sample

+0

Изображение хорошо иллюстрирует регулярное выражение, что вы использовали для его создания? –

+1

@Protectator https://www.debuggex.com/ - это инструмент –

0

Это регулярное выражение должно работать, по крайней мере, в случае вы публикуемую:

[A-Z][a-z]+|[A-Z]*(?![a-z]) 
Смежные вопросы