Regex for LAS entries
本文关键字:entries LAS for Regex | 更新日期: 2023-09-27 18:19:37
我对RegEx很不满意。有人能帮我为这种模式获取RegEx吗。
这是图案
(文字)。(单个字符,可以为空)(空白)(单词,可以为空白):(单词,可为空)
以下是的示例
VERS. 2.00: Ver 2.00
WRAP. NO:
STRT.F 4501.0000:START DEPTH
WELL. C5 1H:WELL
FTG GTG. :LOCATION FOOTAGE DESCRIPTION
更新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);
更新2:
好的。我尝试了一些新的东西。这是我的正则表达式。
('.)(.)('s+)(4501.0000)(:)
这是输入。
STRT DTG.F 4501.0000:START DEPTH
这是输出。
STRT DTG
.
F
4501.0000
:
START DEPTH
现在,我只需要用正则表达式替换4501.0000来表示句子(例如"some text"或"some more text"),
LAS文件的头部分(通常)具有这种格式。
<MNEM> .<UNIT> <DATA> : <DESCRIPTION>
正则表达式可以是这样的。
^(['w's]*)'s*'.([^ ]*)'s*([^:]*)'s*:(.*)$
解释
^ -> beginning of line
(['w's]*) -> 1st group, MNEM (take words and/or space)
's* -> space
'. -> period delimiter
([^ ]*) -> 2nd group, UNIT (take everything until it sees space)
's* -> space
([^:]*) -> 3rd group, DATA (take everything until it sees colon)
's* -> space
: -> colon delimiter
(.*) -> 4th group, DESCRIPTION (take everything)
$ -> end of line
演示
使用''s或"以包括空白。类似的东西
((?:[a-z][a-z's]+))
或
((?:[a-z][a-z ]+))