我正在查看任何txt文件以解析特定信息。该信息是房间的名称,coordinates_x和coordinates_y。房间的名称可以是任何字符串名称(abc
,6a7b8c
,_test1n6_
等),并且不包含“#”,因为这将成为我的错误管理的一部分。为了进一步解释txt文件,我想始终忽略第一行,而在第一行之后,则是在x和y坐标中创建的房间(例如2 5 0
的房间名为{{1 }},坐标为(5,0))。我没有从所需文件中获取所有必要的行字符串。例如,我只会得到以任何字符开头而不带任何字符的字符串,而且还会得到我现在真正不需要的字符串。我是一天前才开始学习Regex的,所以请忍受:)。
我正在使用网站regexr可视化并查看输出搜索。效果很好,但是我对错误检查的了解越多,我的正则表达式就越复杂。
这是我当前的正则表达式:
2
而txt文件是这样的:
\S+(\w+[0-9]) | \s+\w*[A-Z]
输出:
3
2 5 0
##start
0 1 2
##end
1 9 2
3 5 4
######################
###lol123
###1234124
#111shouldnotread#~!~
6ajhk 888 888
D_c7 10 10
Enz4 11 11
Maf9 15 15
Eex5 18 18
U_e6 21 21
Nip5 25 25
Gw_5 28 28
Vio7 31 31
His7 34 34
Exh6 37 37
Iq_8 42 42
Qky2 45 45
Tac1 49 49
X__5 51 51
Xlb4 55 55
0-2
0-3
2-1
3-1
2-3
就目前而言,我已经获得了想要的一切,但还没有到位。您会看到,我有一些房间,但没有888
888
D_c7
Enz4
Maf9
Eex5
U_e6
Nip5
Gw_5
Vio7
His7
Exh6
Iq_8
Qky2
Tac1
X__5
Xlb4
的房间,这是我房间的名称,坐标为"6ajhk"
。其余的已经单独处理。感谢您的时间和耐心。
答案 0 :(得分:0)
答案 1 :(得分:0)
如果我正确理解了您的要求,则此正则表达式似乎可以解决问题:
/^\w*(?!\n)(?=\s)/gm
请注意,我正在使用多行标记/m
。
您可以在这里进行测试:https://regexr.com/4arnh
编辑:如果您不想包括个位数的房间名称,则可以使用:
/^\w{2,}(?=[^\S\n])/gm
其中2是房间字符串中的最小字符数。此处演示:https://regexr.com/4arnq