是否可以编写匹配不同模式的正则表达式,以便从文本中提取数据,如下例所示:
City A is 10 minutes away from City B and 6 minutes from City C.
我希望得到第一个城市(城市A),然后是每个与之相关的城市及其各自的距离。
在这种情况下,我需要提供以下信息:
City A
City B => 10
City C => 6
提前致谢
编辑:
城市数量不固定。第一个城市可以链接到1个或N个城市。
1个城市的例子:
City A is 10 minutes away from City B.
示例3:
City A is 10 minutes away from City B, 6 minutes from City C and 8 minutes from City D.
答案 0 :(得分:1)
如果你想解析某个包含固定单词组合的文本,比如你的例子,那么它适用于正则表达式过滤。否则,您最好按照上面的建议使用语法和词法分析器。
答案 1 :(得分:1)
也许这个
# "\\G(?:(?:^(?<TimeBase>)\\s*City\\s+(?<CityBase>\\w+))|(?:(?:\\s+(?:is|and)|\\s*,)\\s+(?<TimeExtra>\\d+)\\s+minutes(?:\\s+away)?\\s+from\\s+City\\s+(?<CityExtra>\\w+)))"
\G
(?:
(?:
^
(?<TimeBase> )
\s* City \s+
(?<CityBase> \w+ )
)
|
(?:
(?:
\s+
(?: is | and )
| \s* ,
)
\s+
(?<TimeExtra> \d+ )
\s+ minutes
(?: \s+ away )?
\s+ from \s+ City \s+
(?<CityExtra> \w+ )
)
)
答案 2 :(得分:-1)