2016-08-25 3 views
1

У меня есть строка, что-то вроде этого:Regexp найти слова с апострофом

You're so beaulifull! Don't say me no! 

если я пытаюсь все слова от регулярных выражений, с помощью \w+ я получу вывод так:

You 
    re 
    so 
    beaulifull 
    Don 
    t 
    say 
    me 
    no 

, но какое регулярное выражение следует использовать для сопоставления слов с апострофом, поэтому вывод будет правильным?

+1

[\ ш '] + будет делать это – WNG

+0

И если он будет это '[A-Za-Z_]' – Proxima

+0

Каких выходов вы ожидаете от указанных выше строк? Должен ли вывод быть двумя словами с «Ты и нет»? –

ответ

1

Попробуйте создать класс символов, включая как \w и апостроф буквального, так что-то вроде этого: [\w']+

+0

, и будет ли это '[a-zA-Z_]'? – Proxima

+1

@Proxima Я предполагаю, что вы спрашиваете, как использовать это регулярное выражение, поэтому попробуйте этот '[a-zA-Z _ '] +'. Дело в том, что вам нужно включить апостроф в класс символов, чтобы он был частью матча. –

0

Если вы не возражаете слово начальной или конечной апостроф [\w']+ будет достаточно.

Однако; если вы не хотите, ни один из тех, кого вы могли бы попробовать что-то вроде этого: \w+('\w+)?

0

Regex: /\w+\'\w+/g

Чтобы проверить это быстро, мы можем перейти к консоли браузера и проверьте следующее:

var str = "You're so beaulifull! Don't say me no!"; 
str.match(/\w+\'\w+/g); 

дает нам: ["You're", "Don't"]

Смежные вопросы