У меня есть файл, который содержит тексты, как показано ниже:Вставка новой строки перед регулярным выражением матча с C#
adj 1: text1 2: text2 n 1: text4 adj 1: text5 adv 1: text6 3: text7
Я хочу, чтобы вставить символ новой строки (n
) между прил, п, число и т.д., чтобы иметь следующий выход:
adj 1: text1
2: text2
n 1: text4
adj 1: text5
adv 1: text6
3: text7
у меня есть это регулярное выражение: \s+\d+|\s+((n|v|adv|adj|)\s+\d+)
Теперь, если я использую Regex.Replace()
это добавить символ новой строки, но и удалит найденное циновку ches (1, 2, n 1 и т. д.). Есть ли способ, чтобы я мог вставить новую строку перед матчем, не удаляя совпадение?
Вам потребуется lookarounds - нулевой ширины утверждения. Если вы предоставляете более реалистичную строку ввода, наверняка люди готовы помочь вам. – Jan
[Что-то близкое к тому, что вам нужно] (http://regexstorm.net/tester?p= (% 3f% 3a% 5bnv% 5d% 7cad% 5bvj% 5d)% 3f% 5cs% 2b% 5cd% 2b% 3a . *% 3f (% 3f% 3d% 24% 7c (% 3f% 3a% 5bnv% 5d% 7cad% 5bvj% 5d)% 3f% 5cs% 2b% 5CD% 2b% 3a) & я = прил + 1% 3a + текст1 + 2% 3a + текст2 + п + 1% 3a + text4 + прил + 1% 3a + text5 + Adv + 1% 3a + text6 + 3% 3a + text7 & г =% 24% 26% 0D% 0A). –