2015-12-08 2 views
0

я борюсь с написанием правильного RegExp, который соответствует словам и без цифр/тира/подчеркивающих правильных слов:совпадение слов с NUM/тиром/подчеркивание

и т.д. Я придумал с этим: \w+(-\w+)+([A-Za-z0-9_\-]), но оно соответствует только слова с тиром, так что stack-overflow работает, но не stackoverflow

+1

Почему бы не '([-_a-zA-Z0-9] +)'? См. [Regex101 demo] (https://regex101.com/r/fD9rC7/1). – Jan

+0

Хорошо, я клянусь, я пробовал это раньше, поскольку это было мое первое предположение, но теперь это работает. Магия! : D К сожалению, я не могу отметить комментарий как ответ, не стесняйтесь публиковать его в качестве ответа, и я отвечу вам. Благодаря! – Raston

+1

@Raston: Не ['\ b [a-zA-Z0-9] + (?: [-_] [a-zA-Z0-9] +) * \ b'] (https: // regex101 .com/r/wD9iU6/3) работают лучше для вас? '[-_a-zA-Z0-9] +' будет соответствовать '_stack' и' stack_' и 'stack ___--'. –

ответ

1

в дополнении к моему комментарию, здесь ответ, а также:

([-_a-zA-Z0-9]+) 
# will match dash, underscore, a-z, A-Z an numbers 

См. mentionned regex 101 demo. Однако загляните в комментарий @ stribizhev, а также он гораздо более опытен, чем я (учитывая его репутацию, он здесь все время ...).

+0

FYI: количество баллов не является показателем общего опыта и уровня знаний регулярных выражений. –

+0

@stribizhev Это может быть правдой, но в вашем случае - глядя на различные ответы регулярных выражений, которые вы дали до сих пор - можно предположить определенный уровень опыта - по крайней мере, в этой области ;-) – Jan

+0

:) Я просто имею в виду людей с 700 точки репутации также могут быть искусными в regex :) –

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