当源字符串以特定子字符串开头时,如何使用dotNET正则表达式捕获字符串

时间:2012-01-06 14:49:20

标签: .net regex

我有以下字符串:

  

city-Rio de Janeiro + Belo Horizo​​nte + Santos

我可以成功使用此正则表达式来提取城市名称:

(?<=city\-|\+)(?<city>[a-zA-Z\s+\-]+)(?=\+|$)

但实际上上面的正则表达式将子字符串“city-”视为可选,如何确保字符串以“city-”开头并捕获由加号分隔的所有后续字符串?

1 个答案:

答案 0 :(得分:0)

你可以先尝试用输入中的任何内容替换^city-:如果结果字符串相同,而不是你想要的字符串。

如果相反,替换成功,只需将转换后的字符串拆分为+,组将成为城市名称。完成工作!

替代步骤1:查找子串“city-”的第一个索引,它应该为零。甚至不需要正则表达式。