Какое регулярное выражение можно использовать для сопоставления только букв, цифр и одного пробела между каждым словом?
Как создать выражение регулярного выражения, которое будет соответствовать только буквам и цифрам, и одно пространство между каждым словом?
Хорошие примеры:
Amazing
Hello World
I am 500 years old
Плохие примеры:
Hello world
I am 500 years old.
I am Chuck Norris
Ответы
Ответ 1
Большинство реализаций регулярных выражений поддерживают именованные классы символов:
^[[:alnum:]]+( [[:alnum:]]+)*$
Вы можете быть умнее, хотя немного менее ясным и упростить это:
^([[:alnum:]]+ ?)*$
FYI, второй - символ ложного пробела в конце строки. Если вы не хотите, чтобы палка с первым регулярным выражением.
Также, как говорили другие плакаты, если [[:alnum:]]
не работает для вас, вы можете использовать [A-Za-z0-9]
вместо этого.
Ответ 2
([a-zA-Z0-9]+ ?)+?
Ответ 3
^([a-zA-Z0-9]+\s?)*$
его работы
Ответ 4
^[a-zA-Z]+([\s][a-zA-Z]+)*$
Ответ 5
(?:[a-zA-Z0-9]+[ ])+[a-zA-Z0-9]+
Если вы правильно поняли, то указанное выше регулярное выражение должно работать.
Смотрите снимок экрана ниже:
снимок экрана http://img136.imageshack.us/img136/6871/screenshotkiki056.png
Ответ 6
Это будет соответствовать слову
'[a-zA-Z0-9]+\ ?'