|
|
|
CaptureCollection и Capture в Java regex
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, есть ли в Java аналог CaptureCollection из C# ? В C# есть возможность получить доступ ко ВСЕМ совпадениям для определенного паттерна в group. Например есть регулярное выражение Код: c# 1. и есть строка в которой ищут совпадения "This is a sentence." Если посмотреть значение в group[1], которым является выражение в круглых скобках Код: c# 1. то под него попадает сразу 4 слова - Код: c# 1. . (напомню, что group[0] - это по умолчанию все выражение целиком, а group[1] - то что мы определили сами в первых круглых скобках) Если в C# вызвать значение Код: c# 1. то там будет значение "sentence". Чтобы получить все 4 значения, которые были найдены для выражения Код: c# 1. надо вызвать Код: c# 1. 2. 3. 4. 5. В Java я могу тоже получить доступ к группам Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. То есть на уровне group работает также. И также group(1) содержит значение последнего найденного соответствия для выражения Код: java 1. . Но как получить доступ к предыдущим 3 значениям, которые также были найдены в соответствие шаблону для group(1) - то есть к "This", "is", "a" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 22:24 |
|
||
|
CaptureCollection и Capture в Java regex
|
|||
|---|---|---|---|
|
#18+
oson, оно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 22:51 |
|
||
|
CaptureCollection и Capture в Java regex
|
|||
|---|---|---|---|
|
#18+
понимаешь, у кого собственно вызывать метод какой-то, чтобы получить доступ ко всем элементам группы? То есть в C# я делаю вызов Код: c# 1. получаю доступ к GroupCollection Код: c# 1. Сам этот match.Groups[1] соответствует моему паттерну в первых круглых скобках. Был бы паттерн во 2 круглых скобках - я бы получил доступ к этой группе GroupCollection groupCollection1 = match.Groups[1]; А дальше уже можно работать с groupCollection1, в том числе получить и список всех captures. А вот в Java когда я делаю Код: java 1. , то получаю сразу String Код: java 1. и это всегда только последний результат сопадения с регулярным выражением для этой группы. Что я могу уже вызвать у String? Получается, что к списку всех сопадений, найденных для моего регулярного выражения в первой (второй, третьей...) группе у меня доступа в Java нет - только к последнему его значению. Видимо в Java хуже дела с regex чем в C#. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2014, 23:05 |
|
||
|
CaptureCollection и Capture в Java regex
|
|||
|---|---|---|---|
|
#18+
osonНо как получить доступ к предыдущим 3 значениям, которые также были найдены в соответствие шаблону для group(1) - то есть к "This", "is", "a" ? Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 04:05 |
|
||
|
CaptureCollection и Capture в Java regex
|
|||
|---|---|---|---|
|
#18+
UsmanosonНо как получить доступ к предыдущим 3 значениям, которые также были найдены в соответствие шаблону для group(1) - то есть к "This", "is", "a" ? Код: java 1. 2. 3. 4. 5. 6. Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 04:06 |
|
||
|
CaptureCollection и Capture в Java regex
|
|||
|---|---|---|---|
|
#18+
Usman, я чтото не понял ответ. Если простосделать цикл по group(1) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. то выводит только последнюю строку. Предыдущие недоступны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 15:37 |
|
||
|
CaptureCollection и Capture в Java regex
|
|||
|---|---|---|---|
|
#18+
osonвыводит только последнюю строку. Предыдущие недоступны.И правильно, т.к. точка стоит сразу же за последним словом. Условие паттерна корректно выполняется. (см. 16759858 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2014, 15:57 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=155&tid=2126389]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 402ms |

| 0 / 0 |
