2015-02-26 5 views
1

Я пишу регулярное выражение для поиска адреса, которые имеют символы, пробелы между ними алфавитов, запятой, цифры, специальные символы, такие как Ö, О.Е., â и т.д.Regex для Исключая специальные Charaters

Я хочу написать регулярное выражение для адреса который матч со всем Charaters кроме арматуры специальных символов (Ö, Оэ, а) в Perl

Я написал

qr/.{1,100}/i 

но совпадает со всеми символами, включая специальные символы, я просто хочу, чтобы соответствовать адресу; что не имеет специальным персонажи.

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

+1

Вы имеете в виду это 'qr/[a-z0-9, \ s] {1,100}/i'? –

+0

у него также есть другие символы, такие как -, _, 'и т. Д. Я не могу предсказать, какие персонажи появятся для этого поля. Я просто хочу удалить специальные символы и принять все остальные – Futuregeek

+0

'Я не могу предсказать, какие символы подходят для этого поля', когда вы не можете как это сделать регулярное выражение? – vks

ответ

-1

Я пробовал в javascript. Он отлично работает в java-скрипте, вы можете преобразовать его в perl.

здесь код

/^ [A-Za-z0-9() -] * $/

Это позволяет ASCII символы и пробелы, но не позволяя специальных символов в любом месте.

Example:- 
sdddd -- allowing 
@xxx123 -- not allow 
abcdfe4 -- allow 
123 ba xx -- allow 
pqrs_ -- Not allow 
+0

Но вы отвергаете все, что содержит знаки препинания. Кстати, почему у вас есть '[a-zA-Z0-9] [a-zA-Z0-9] +', который является таким же, как '[a-zA-Z0-9] {2,}'? – Borodin

3

Это звучит, как вы хотите, чтобы соответствовать ASCII набор символов

/\p{ascii}+/ 

И если вы хотите, чтобы проверить, содержит ли строка любой не-ASCII символы, то вы можете использовать обратную имущества классом выше

print "String okay" unless /\P{ascii}/ 
0

Вы можете использовать белый список символов с помощью

/^[A-Za-z0-9_]*$/ 

или черный список с помощью

/^[^öäü]*$/ 

Первый ^ соответствует началу строки, а второй является not для персонажей. $ соответствует концу строки.

Я бы предложил использовать белый список, так как вы, вероятно, знаете персонажей, с которыми вы можете иметь дело, но вы можете не знать всех персонажей, с которыми вы не можете справиться.

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