使用正则表达式搜索和替换,其中某些字符出现在字符串中的任何位置

我想从字符串中检索特定信息(坐标),其中某些字符(例如''和换行符)可以出现在其中的任何位置。我的长期目标是用对应的城市名称替换字符串中的坐标。

这是一个字符串示例(它是wikicode):

''These are the coordinates'' : 

''Long. 17d. 6′. 8″. lat. 47d. 28′. 8″
''Lon. ''36d. 70′. 80″. ''lat. 45d. 20′. 5″
''Long. 17d. 6′. 8″.
lat. 47d. 28′. 8″

(我希望3个坐标匹配)。

这是到目前为止我想到的PCRE正则表达式:

/''Long?(?:'')?\.(?:'')? .*?(?P<Degrees>\d+).*?d.+?(?P<Minutes>\d+)′.*?(?P<Seconds>\d+)″.*?(?:'')?lat(?:'')?\.(?:'')?.*?(?P<Degrees>\d+).*?d.+?(?P<Minutes>\d+)′.*?(?P<Seconds>\d+)″.*?/gmJ

regex101 link

最后一个坐标与我的正则表达式不匹配,因为中间有一个换行符。一开始,我以为:“好吧,我将在正则表达式中添加一个可选的换行符”,但是后来我意识到,换行符就像''一样,可能会出现在字符串的任何位置,并添加可选的换行符和可选的''(就像我开始在正则表达式中一样)之后,我的正则表达式中的每个字符听起来像是完全不可读和无法维护的。

在这里我有什么选择?从理论上讲,我可以从字符串中删除''和换行符,但实际上我需要在字符串的其他部分使用它们(例如在子字符串''These are the coordinates''中:这些''必须保留)

xzpxiao 回答:使用正则表达式搜索和替换,其中某些字符出现在字符串中的任何位置

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3146220.html

大家都在问