FindAllStringSubmatch в длинной строке - PullRequest
0 голосов
/ 30 апреля 2018

У меня длинная строка поиска (вырез):

s := `<option value='1'>Name A</option><option value='2'>Name B</option><option value='3'>Name C</option><option value='4'>Name D</option><option value='5'>Name E</option><option value='6'>Name F</option><option value='7'>Name G</option>`

И я хочу найти значение и имя:

re := regexp.MustCompile(`ue='([0-9]+)'\>(.+)\</o`)
arr := re.FindAllStringSubmatch(s, -1)

Вместо того, чтобы возвращать нужное мне значение, функция возвращает

[[ue='1'>Name A</option><option value='2'>Name B</option><option value='3'>Name C</option><option value='4'>Name D</option><option value='5'>Name E</option><option value='6'>Name F</option><option value='7'>Name G</o 1 Name A</option><option value='2'>Name B</option><option value='3'>Name C</option><option value='4'>Name D</option><option value='5'>Name E</option><option value='6'>Name F</option><option value='7'>Name G]]

Пожалуйста, помогите, чтобы он вернулся больше как

[[ue='1'>Name A</o 1 Name A][ue='2'>Name B</o 2 Name B][... etc

Я проверил виновника ((+)), но ему всегда не удавалось вернуть ожидаемого, он был расширен до конца строки.

1 Ответ

0 голосов
/ 30 апреля 2018

Этот вопрос отличается, но ответ соответствует моей проблеме.

Я заменяю (.+) на ([^\<]+), поэтому последняя строка

 re := regexp.MustCompile(`ue='([0-9]+)'\>([^\<]+)\<`)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...