【发布时间】:2014-02-10 13:21:17
【问题描述】:
我有以下 2 串火车站 ID(显示行进方向),用“-”分隔。
String A (strA):
NS1-NS2-NS3-NS4-NS5-NS7-NS8-NS9-NS10-NS11-NS13-NS14-NS15-NS16-NS17-NS18-NS19-NS20-NS21-NS22-NS23-NS24-NS25-NS26-NS27
String B (strB):
NS27-NS26-NS25-NS24-NS23-NS22-NS21-NS20-NS19-NS18-NS17-NS16-NS15-NS14-NS13-NS11-NS10-NS9-NS8-NS7-NS5-NS4-NS3-NS2-NS1
我想找出字符串 A 或 B 中的哪一个包含电台“NS4”,然后是“NS1”(答案应该是字符串 B)。 我目前的代码如下:
searchStr = ".*NS4-.*NS1(-.*|)"
re.search(searchStr, strA)
re.search(searchStr, strB)
但结果一直在字符串 A 中返回匹配项。 我可以知道如何指定 'searchStr' 以仅匹配字符串 B 吗?
【问题讨论】:
-
正则表达式不是适合这项工作的工具
-
"NS4-NS10" 将匹配您的正则表达式。
-
嗨 Jarrod,我应该将其标记为搜索列表吗?
-
为什么投反对票?这个问题对我来说似乎很清楚。使用
NS4-.*NS1($|-)作为正则表达式。应该工作。 -
我正要回答这个问题,使用这个正则表达式:
NS4(?=.*?NS1(?!\d))它说 NS1 必须跟随 NS4,但数字不能跟随 NS1。它会起作用的。