正则表达式匹配一段文字中的中文

距离9号线七宝站735米
这样的一句话,我希望匹配中间的七宝站或者其它的类似的站名,蠢一点的方法可以用正则去替换掉距离9号线以及735线,但我还是想问问大佬们有没有更好的方案。

阅读 6.7k
2 个回答

尽量把规则以及场景描述清楚一点,不然写的正则不具备普遍性

'距离9号线七宝站735米'.match(/\d+号线([\u4e00-\u9fa5]+)\d+米/)[1]

这个就能把七宝站匹配出来,就是不知道是否满足所有条件。

var str = '距离9号线七宝站735米';
// 确定前面是线,后面是**站。可以这样实现
var result = str.match(/线(.*?站)/);
console.log(result[1]); // '七宝站'
// 这样实现简单。.指几乎所有的任意字符。*指0个或多个。这里的?指惰性模式。就是匹配尽可能少。
// 上面写法可能不是那么高效。// 如果确定没有站前站类似的。可以这样写。更加高效些。
// var result = str.match(/线([^站]*站)/);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题