JavaScript — Написание расширенного регулярного выражения

Во-первых, извините за мой плохой английский. Я новичок с регулярным выражением. Я пытаюсь сделать автоматический перевод. Например, у меня есть текст вроде:

/begin CHARACTERISTIC

AccPed_trqEngLow_MAP
"Kennfeld für AWD"MAP
0x801B425C
Map_Xs16Ys16Ws16
1500.000
Trq
-500.0000
1000.000

FORMAT "%8.3"EXTENDED_LIMITS -3276.800 3276.700


/begin AXIS_DESCR

STD_AXIS
Epm_nEng
EngN
16
0.00
10000.00

FORMAT "%8.2"EXTENDED_LIMITS -16384.00 16383.50
DEPOSIT ABSOLUTE

/end AXIS_DESCR

/begin AXIS_DESCR

STD_AXIS
AccPed_rAPP
Prc
8
0.00
100.0000

FORMAT "%8.4"EXTENDED_LIMITS -400.0000 399.9878
DEPOSIT ABSOLUTE

/end AXIS_DESCR

/end CHARACTERISTIC

Мне нужно выбрать все строки в "" лайк "Kennfeld für AWD", но не выбирайте, где начинается с % ("%8.3") Возможно ли это хотя бы? Заранее спасибо .. Строка P.S может содержать кавычки внутри, например "Hello "world" !" Это очень сложно для меня.

0

Решение

/\"([^%].*)\"/g соответствует всем строкам в кавычках, которые не начинаются с символа%.

В javascript (es6) это будет:

const example = `
/begin CHARACTERISTIC

AccPed_trqEngLow_MAP
"Kennfeld für AWD"MAP
0x801B425C
Map_Xs16Ys16Ws16
1500.000
Trq
-500.0000
1000.000

FORMAT "%8.3"EXTENDED_LIMITS -3276.800 3276.700

/end CHARACTERISTIC
`

let re =  /\"([^%].*)\"/g;
let results = example.match(re);

console.log(results)
0

Другие решения

Как насчет?

<?php
$string = '
WHATVER "Kennfeld für AWD"FORMAT "%8.3""Hello "World" !"FOO
BAR
FORMAT "%8.2"FORMAT "%8.4"/end CHARACTERISTIC';

preg_match_all('/"((?!\%).+)"/', $string, $matches, PREG_PATTERN_ORDER);

echo "<pre>";
print_r($matches);
echo "</pre>";
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector