Сопоставлять только буквы после запятой без цифр

Я использую регулярное выражение для соответствия определенному тексту после выбора с помощью xpath

например Huntsville, Alabama 11111

я хочу только Alabama который всегда идет после запятой, и я использую [^,]*$ чтобы получить текст после запятой, но я не могу найти способ исключить цифры или возвращает только буквы

другой пример, когда я хочу получить числа после запятой, которую я использую [^[0-9],]*$но когда я пытался настроить его чем-то еще, он только возвращал числа или ничего.

2 ответа

Решение

[?<=,\s*][a-zA-Z]+ Вы можете попробовать это.

Объяснение:

?<= => смотреть сзади, чтобы соответствовать строке, но не включать в группу захвата

,\s* => соответствует запятой, за которой следуют 0 или более пробелов

[a-zA-Z]+ => совпадать только буквы (одна или несколько)

НТН

Чтобы сопоставить буквенное слово после последней запятой, вы можете использовать

[a-zA-Z]+(?=[^,]*$)

Смотрите демо-версию регулярного выражения.

подробности

  • [a-zA-Z]+ - 1 или более букв ASCII
  • (?=[^,]*$) - следуют 0+ символов, кроме , до конца строки.

Чтобы сопоставить 1 или более слов в одном контексте, используйте

[a-zA-Z]+(?:\s+[a-zA-Z]+)*(?=[^,]*$)
         ^^^^^^^^^^^^^^^^^

Смотрите это регулярное выражение.

(?:\s+[a-zA-Z]+)* part соответствует нулю или более последовательных вхождений 1+ пробелов и 1+ букв ASCII.

Другие вопросы по тегам