Если квантификатор *
представляет собой «ноль или более раз», похоже, "aabbcc"[/ab*/]
должен вернуть "abb"
, но он возвращает только "a"
.Почему «aabbcc» [/ ab * /] возвращает «a»?
ответ
Хорошо, поэтому я только что узнал, потому что самый лучший матч выигрывает, и так как есть a
, который соответствует до abb
, это то, что было возвращено.
Очень хороший ресурс для проверки регулярного выражения ruby - http://rubular.com/. Как вы уже заметили, регулярное выражение возвращает первое совпадение, а ab * соответствует 'a', а также' abb'. Также обратите внимание, что регулярное выражение также жадно по умолчанию, так что/a * c/будет соответствовать 'aabbcc' (раздражает при сопоставлении фигурных скобок, поскольку иногда вы заканчиваете тем, что сопоставляете последнюю скобку в своей строке, а не ту, которая фактически закрывает скобку. – Tigraine
@Tigraine : Для этого вам понадобится '/\(.*?\)/' или '/ \ ([^ \)] * \) /' –
@Tigraine: '" aabbcc "[/ a * c /]' возвращает 'c' – maml
Регулярное выражение возвращает именно то, что вы просили: первое появление 1 a
, за которым следует 0 или более b
.
Если вы хотите, чтобы все неперекрывающихся вхождений, можно использовать scan
:
"aabbcc".scan(/ab*/)
#=> ["a", "abb"]
Если вы хотите иметь не менее 1 b
, вы могли бы использовать b+
:
"aabbcc"[/ab+/]
#=> "abb"
- 1. Почему «ab» .match (/ ab /) возвращает ["ab", "ab"]?
- 2. Почему re.findall ('(ab) +', 'abab') возвращает ['ab'] = в то время как re.findall ('(ab) +?', 'Abab') возвращает ['ab', 'ab' ]?
- 3. T-SQL: как бы вы отфильтровывали «ab, ab ab», но не «ab, ab»?
- 4. Как Flex различает A, AB и ABC?
- 5. Регулярное выражение A (B + C *) == AB + A (C *)
- 6. Sqlite заказ на, AABBCC
- 7. XPath: Как искать с AB - AB для AB? AB или AB? -AB
- 8. Почему применение & to String возвращает a & str?
- 9. Что возвращает a, b и почему?
- 10. «ab» программа зависает после множества запросов, почему?
- 11. Почему `A & a = a` действительно?
- 12. Почему длинные хэши в AB-тестах?
- 13. Наследование Java, почему это toString печатает BB, а не AB, AB?
- 14. Строка декларации по характеру «A» + «B» против «AB»
- 15. a = 0; почему (++ a + ++ a * ++ a) = 7?
- 16. Почему суммарный (a $ alpha) возвращает класс «-не-», когда класс (a $ alpha) возвращает «числовой»?
- 17. Почему «A» или нет выходных только возможных выходов этого кода, он также может быть «AB»?
- 18. В чем смысл AB в AB | C в спецификации TypeScript?
- 19. Python: Почему reverse (a) == reverse (a) возвращает False, где a - массив?
- 20. C# - Есть ли способ сократить «if (ab == 1 || ab == 4 || ab == 6)«
- 21. Javascript arrays ab = ba
- 22. JSON.parse возвращает «scanEscape a»
- 23. isset возвращает a '1'
- 24. a HashSet.contains() возвращает объект
- 25. Функциональная зависимость F = {AB-> CD, A-> B} или A-> C
- 26. "-" == "-" возвращает false .. Почему?
- 27. Почему? Возврат «A» в ruby
- 28. Булевая логика A'B + AB '
- 29. Solr - Поиск «B» не возвращает «AB», «BA», «ABA»
- 30. msvcrt.getch() возвращает b'a 'вместо' a '?
Почему? '' a'' содержит 'b' ноль или более раз, не так ли? –