定位模式字母后面跟着一个空格,然后是三个字母数字后跟一个空格

时间:2008-11-20 15:00:34

标签: .net vb.net regex

需要找到以下模式:

我写的字母后面是一个空格,然后是三个字母数字后跟一个空格

“我ALN” “我H21” “我31M”

这些项后面跟着一个被这个表达式捕获的纬度/经度:

Dim regex As New Regex(“\ d {6} \ d {7}”)

可以合并表达式以返回看起来像的匹配:

“H21 ###### #######”

谢谢,

戴夫

2 个答案:

答案 0 :(得分:4)

/ I([0-z] {3} \ d {6} \ d {7})/

我不知道VB,但是正则表达式可以用于说perl。

更新
鉴于提供了新的字符串..类似可能的工作(取决于对我的问题的回答)

/^[A-z] ([0-z]{3}) [A-z] [0-z]{3} L (\d{6} \d{7})/

然后将匹配匹配(匹配1包含AAA,匹配2包含Lat / Long)。

更新#2:
从OP:否模式。唯一的模式是我AAA然后在同一行4000931 0892006.你可以在表达式中添加一个OR语句

你可以添加OR,但是我不确定这是你想要的吗? 这个新的正则表达式将匹配I,后跟一个空格,后跟3个字母数字字符,然后是“任意”,以及纬度/经度。请注意,如果文件中的数据或您正在解析的任何内容与那样的行相匹配(因为它是“其他”数据,但遵循类似的模式),您可能也会注意到这一点。

/^I ([0-z]{3}) .* (\d{6} \d{7})/

答案 1 :(得分:1)

I ([a-zA-Z\d]{3} \d{6} \d{7})

匹配组1将包含三个字母数字加上您已经在其他正则表达式中捕获的数字。

编辑:不起作用,因为问题中描述的模式并未反映作者首先所说的内容。真正意味着在评论中首先澄清了。