我正在查看任何txt文件来解析特定信息。信息是文件室的名称、坐标x和坐标y。文件室的名称可以是任何字符串名称(abc
、6a7b8c
、_test1n6_
,等等),并且不包括“#”,因为这样它将成为我的错误管理的一部分。为了更详细地解释txt文件,我希望总是忽略第一行,在第一行之后,是在x和y坐标中创建的房间(例如2 5 0
有一个名为2
的房间,坐标为(5,0))。我没有从文件中得到所需的所有行字符串。例如,我只得到以任何字符开头的字符串,而没有,但也得到了我现在不需要的字符串。我一天前才开始学Regex,所以请耐心点:)。你知道吗
我正在使用网站regexr来可视化和查看输出搜索。它的工作非常出色,但是我越是想到错误检查,我的正则表达式就变得越复杂。你知道吗
这是我现在的正则表达式:
\S+(\w+[0-9]) | \s+\w*[A-Z]
txt文件如下:
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"
的房间,那是我房间的名字,坐标是(888, 888)
。其余的已经分开处理了。谢谢你的时间和耐心。你知道吗
如果我正确理解了您的要求,那么这个正则表达式似乎可以做到:
注意,我使用的是多行标志
/m
。你知道吗你可以在这里测试:https://regexr.com/4arnh
编辑:如果不想包含一位数的房间名称,可以使用:
其中2是房间字符串中的最小字符数。演示:https://regexr.com/4arnq
我想这应该是你想要的。你知道吗
见:https://regex101.com/r/Kqakb8/2
相关问题 更多 >
编程相关推荐