Ограничьте количество слов в ответе с регулярным выражением

Если его всегда x = число , я думаю, что проще зацикливаться на каждом значении с разделителями, затем прочитать значение = для значения:

Function MaxValue(data As String)
    Dim i As Long, value As Double
    Dim tokens() As String: tokens = Split(data, ",")

    For i = 0 To UBound(tokens)
        '// get the value after = as a double
        value = CDbl(Trim$(Mid$(tokens(i), InStr(tokens(i), "=") + 1)))
        If (value > MaxValue) Then MaxValue = value
    Next
End Function
10
задан Jonathan 17 February 2009 в 16:52
поделиться

2 ответа

Могли Вы пробовать:

^(?:\b\w+\b[\s\r\n]*){1,250}$

Это ограничило бы 250 словами по нескольким строкам.

Я боюсь что начальное суждение Alan:

/^\w+(?:\s+\w+){0,249}$/

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

Когда вложенные операторы повторения, сделайте абсолютно уверенными, что существует только один способ соответствовать тому же соответствию

10
ответ дан 3 December 2019 в 23:15
поделиться

Как насчет того, чтобы разделить текст с regex (говорят "\s +"), и затем подсчет длины получающегося списка? Это было бы несколько легче считать.

3
ответ дан 3 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: