Регулярное выражение (C#) - не могу выяснить, как справиться с отсутствующим полемC#

Место общения программистов C#
Ответить
Anonymous
 Регулярное выражение (C#) - не могу выяснить, как справиться с отсутствующим полем

Сообщение Anonymous »

шаблон:

Код: Выделить всё

,LINE:(?\d+).*?(?:,AMOUNT (?(?:A1|A2)):(?[^,]*)).*?(?:,AMOUNT (?(?:A1|A2)):(?[^,]*))
< /code>
[b] input1: < /strong>
Front Stuff, Line: 1, неважные вещи, сумма A1: 1,10, сумма A2: 1,20, более неважные вещи, строка: 2, не важные вещи, сумма A2: 2.10, сумма A1: 2.20, больше не знают, линейность: 3, невозможные материалы, сумма A1: 10.10: 10.10, A10: 10.10, A10: 310: 310, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, A10, Affer. Неважности < /p>
**Results - This works as I expected**
line=1, amount_type1=A1, amount=1.10, amount_type2=A2, amount2=1.20
line=2, amount_type1=A2, amount=2.10, amount_type2=A1, amount2=2.20
line=3, amount_type1=A1, amount=3.10, amount_type2=A2, amount2=3.20
< /code>
Я хочу обновить регуляцию, чтобы справиться с ситуацией, когда одно или оба количества отсутствуют
Я попытался добавить "?" К концу количества групп, не являющихся захват, но это не так 
 input 2: [/b]
Front Stuff, Line: 1, неважные вещи, [b] отсутствуют Amt 1 [/b], сумма A2: 1.20, более не важные вещи, линия: 2, нельзя. материал, линия: 3, неважные вещи, сумма A1: 3.10, сумма A2: 3.20, Дополнительные неважные вещи < /p>
**Results 2 (Line 1 grabs the first amount from line 2)**
line=1, amount_type1=A2, amount=1.20, amount_type2=A2, amount2=2.10
line=3, amount_type1=A1, amount=3.10, amount_type2=A2, amount2=3.20

**Desired Result:**
line=1, amount_type1=, amount=, amount_type2=A2, amount2=1.20
Or
line=1, amount_type1=A2, amount=1.20, amount_type2=, amount2=

line=2, amount_type1=A2, amount=2.10, amount_type2=A1, amount2=2.20
line=3, amount_type1=A1, amount=3.10, amount_type2=A2, amount2=3.20
Заранее спасибо за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/797 ... sing-field
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»