我正在尝试开发一个正则表达式,以便将寻呼机消息读入类别。最后是回应旅的代码(CBORT,CYAND)。
这些旅码代表每个响应旅。问题是,要么有一个例子。(CBORT)或许多(如)(CBAGR、CBORT、CYAND)。我不知道如何使每个旅作为一个单独的比赛。
每个旅码将以字母C作为前缀。
这是否可以使用正则表达式来完成,或者我是否需要一个PHP脚本来迭代消息的最后一部分,以便将每个旅代码匹配到一个数组中?
寻呼机消息:@警告BORT1 G&SC1草火迅速蔓延79 BOORT-YANDO路BOORT SVNW 214 J15 (475017) AFPR、CBORT CYAND和F190400036
当前Regex:(@@)(ALERT)\s(\w+)\s(\S+)(C1|C3)\s(.+)\s(\d+|\d+KM|\d+ M_REAR_
粗体部分是我希望迭代1次或多次的部分。
谢谢
发布于 2019-05-01 07:52:21
您可以使用((C\w+)\s)+至少有一个匹配的组,但也可以捕获以下组。
您还需要用\(和\) (保留字符)转义消息的括号。
全面调整:
(@@)(ALERT)\s(\w+)\s(\S+)(C1|C3)\s(.+)\s(\d+|\d+KM|\d+ M|CNR|NEAR|NEXT TO|ADJACENT|BEHIND|ACROSS FROM|ACROSS|REAR OF|REAR|OUTSIDE)\s(.+)\s(SVNW)\s(\d+)\s(\w\d+)\s(\(\d+\))\s(F|AF|FP|AFP|AFPR|AFPRS)\s((C\w+)\s)+(F\d+)https://stackoverflow.com/questions/55933030
复制相似问题