Вот мое регулярное выражение, которое я имею для этого.Я нахожусь в Ruby, который - если я не ошибаюсь - использует регулярные выражения POSIX.
regex = /(?:\n^)(\*[\w+ ?]+\*)\n/
Вот моя цель: я хочу разбить строку с регулярным выражением *delimited by asterisks*
, включая те,звездочки. Однако : я хочу разделить по совпадению только в том случае, если перед ним стоит символ новой строки (\n
) или это начало всей строки.Это строка, с которой я работаю.
"*Friday*\nDo not *break here*\n*But break here*\nBut again, not this"
Мое регулярное выражение не разделяется должным образом при совпадении *Friday*
, но равно разбиению при совпадении *But break here*
(он также добавляет разбивку here
).Моя проблема где-то в первой группе, я думаю: (?:\n^)
- Я знаю, что это неправильно, и я не совсем уверен, как правильно написать это.Может кто-нибудь пролить свет?Вот мой полный код.
regex = /(?:\n^)(\*[\w+ ?]+\*)\n/
str = "*Friday*\nDo not *break here*\n*But break here*\nBut again, not this"
str.split(regex)
Что приводит к этому:
>>> ["*Friday*\nDo not *break here*", "*But break here*", "But again, not this"]
Я хочу, чтобы это было так:
>>> ["*Friday*", "Do not *break here*", "*But break here*", "But again, not this"]
Edit # 1: я обновил свое регулярное выражение и результат.(2011/10/18 16:26 CST)
Редактировать # 2 : Я снова обновил оба.(16:32 CST)