#regex #vb.net
#регулярное выражение #vb.net
Вопрос:
"_anim(d )$"
Хорошо, с этим я могу проверить наличие любой строки с _anim
суффиксом в порядке.
Но мне нужно получить значение внутри круглой скобки (которое, как я ожидаю, будет целым числом). И мне также нужно будет получить значение перед префиксом _anim (который, как я ожидаю, будет строкой).
Вот чего я не понимаю: как оно «получает» значения, вместо того, чтобы просто «знать», что совпадение было?
Комментарии:
1. Это хорошо задокументировано в библиотеке MSDN. Вы задаете слишком много вопросов, они скучные и повторяющиеся. Смотрите meta.stackexchange.com/questions/19665/the-help-vampire-problem
2. Меня так долго не было или почему
(
и)
должны быть экранированы? Но, просто тривиальный вопрос.
Ответ №1:
Это делается путем помещения объектов в группы захвата. в регулярном выражении они определяются круглыми скобками, поэтому, я полагаю, вам нужно избегать их в вашем регулярном выражении выше, поскольку вы хотите проверить наличие фактических круглых скобок.
доступ к группам захвата можно получить по номеру в порядке их появления.
Dim ResultString As String
Try
ResultString = Regex.Match(SubjectString, "(.*)_anim((d ))$").Groups(1).Value
Catch ex As ArgumentException
'Syntax error in the regular expression
End Try
0 будет полным совпадением, 1 будет значением перед _anim, а 2 в данном случае будут вашими цифрами.