我想从以下示例模式中提取城市名称。
只有一个正则表达式。应该适合所有上述模式来提取城市名称。
.json到底是可选的。只有当它是API调用时才会出现,如果是HTML请求,它将不会出现。
预计输出如下:
请帮我解决这个问题。
答案 0 :(得分:1)
试试这个:
yourString = (yourString.lastIndexOf(".json") > -1)?yourString.slice(0,-5):yourString;
yourString = yourString.replace(/\.json$/,"");
答案 1 :(得分:1)
您可以尝试使用以下正则表达式仅匹配一开始就存在的城市名称。
^[A-Z][a-z]+(?: [A-Z]\.[A-Z]\.?|(?: [A-Z][a-z]+)*)
或强>
^[A-Z][a-z]+[ .A-Za-z]*?(?=\.json|$)
答案 2 :(得分:1)
答案 3 :(得分:0)
您可以执行以下操作:
String test = "Philadelphia.json"; // or any other input string
String replaced = test.replace(".json", "");
答案 4 :(得分:0)
如果没有必要使用正则表达式,那么这个简单的单行功能将为您完成工作:
function removeJson(s){
return s.replace('.json','');
}
alert(removeJson("Philadelphia.json")); //"Philadelphia"
alert(removeJson("Philadelphia")); //"Philadelphia"
将任何字符串传递给它,如果存在,则删除.json。
<强> See the DEMO here 强>