Я очень плохо отношусь к RegEx. Может ли кто-нибудь помочь мне получить RegEx для этого шаблона.Regex для записей LAS
Здесь шаблон
(слова). (Одного символа, может быть пустым) (белые пробелы) (слова, может быть пустым) :(Слова, может быть пустым)
Вот примеры
VERS. 2.00: Ver 2.00
WRAP. NO:
STRT.F 4501.0000:START DEPTH
WELL. C5 1H:WELL
FTG GTG. :LOCATION FOOTAGE DESCRIPTION
Update 1:
Вот что я сделал.
string re1 = "((?:[a-z][a-z]+))"; // Word 1
string re2 = ".*?"; // Non-greedy match on filler
string re3 = "(\\.)"; // Any Single Character 1
string re4 = "(.)"; // Any Single Character 2
string re5 = "(\\s+)"; // White Space 1
string re6 = "((?:[a-z][a-z]+))"; // Word 2
string re7 = ".*?"; // Non-greedy match on filler
string re8 = "(:)"; // Any Single Character 3
string re9 = ".*?"; // Non-greedy match on filler
string re10 = "(?:[a-z][a-z]+)"; // Uninteresting: word
string re11 = ".*?"; // Non-greedy match on filler
string re12 = "((?:[a-z][a-z]+))"; // Word 3
Regex r = new Regex(re1 + re2 + re3 + re4 + re5 + re6 + re7 + re8 + re9 + re10 + re11 + re12, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Update 2:
Хорошо. Я пробовал что-то новое. Вот мое регулярное выражение.
(\.)(.)(\s+)(4501.0000)(:)
вот этот вход.
STRT DTG.F 4501.0000:START DEPTH
И вот вывод.
STRT DTG
.
F
4501.0000
:
START DEPTH
Теперь мне нужно только заменить 4501.0000 с регулярным выражением для предложения (например, «какой-то текст» или «какой-то больше текста»),
вероятно, вы должны перепроверить спецификации LAS первый, '(СЛОВА) .' не всегда верно, это может быть пробел после' (прописью) spacespacespace . –
Мы внесли некоторые изменения в LAS. Так что это не формат LAS (можно сказать, вдохновленный), –
@YuliamChandra Возможно ли, что в строке LAS есть две колонки «:» в строке LAS ?, –