Javascript Regex从React中的动态URL提取城市和城市代码

Javascript Regex从React中的动态URL提取城市和城市代码,javascript,reactjs,regex,Javascript,Reactjs,Regex,我将URL存储在位置变量中,并且对于例如 1- 2- 3- 4- 5- URL是完全动态的, 我能够使用以下正则表达式提取州代码:- const cityCode=location.split(/(?=[A-Z][A-Z])/)[1]。split(“/”)[0] //这将获得两个连续的大写字符,并在最后删除“/”(如果存在) 如果url中存在,是否有任何可能的正则表达式可以在单个变量中提取国家和州代码。参考: url=[]https://abc.go.com/United_States,US/

我将URL存储在位置变量中,并且对于例如 1- 2- 3- 4- 5-

URL是完全动态的, 我能够使用以下正则表达式提取州代码:-

const cityCode=location.split(/(?=[A-Z][A-Z])/)[1]。split(“/”)[0]
//这将获得两个连续的大写字符,并在最后删除“/”(如果存在)

如果url中存在,是否有任何可能的正则表达式可以在单个变量中提取国家和州代码。

参考:

url=[]https://abc.go.com/United_States,US/“,
'https://abc.go.com/US/',
'https://abc.go.com/Uganda,UG/',
'https://abc.go.com/United_States,美国',
'https://abc.go.com/'
];
forEach(url=>{
console.log(url.match(/.*:\/\/.?\/(.*)/m)[1]。替换(/\/$/,“”))
});参考:

url=[]https://abc.go.com/United_States,US/“,
'https://abc.go.com/US/',
'https://abc.go.com/Uganda,UG/',
'https://abc.go.com/United_States,美国',
'https://abc.go.com/'
];
forEach(url=>{
console.log(url.match(/.*:\/\/.?\/(.*)/m)[1]。替换(/\/$/,“”))

});您可以使用一个捕获组,该捕获组的第一部分带有可选部分和逗号

https?:\/\/\S+?\/((?:\w+,)?[A-Z][A-Z])
  • https?:\/\/
    将协议与可选的
  • \S+?\/
    尽可能少地匹配1+非空白字符
  • Capturegroup1(在示例代码中由
    m[1]
    访问)
    • (?:\w+,)?
      可以选择匹配1+个单词字符和一个逗号
    • [A-Z][A-Z]
      匹配2个大写字符
  • 关闭第1组

const pattern=/https?:\/\/\S+?\/((?:\w+,)?[A-Z][A-Z])/;
[
"https://abc.go.com/United_States,US/“,
"https://abc.go.com/US/",
"https://abc.go.com/Uganda,UG/“,
"https://abc.go.com/United_States,美国“,
"https://abc.go.com/"
].forEach(s=>{
常数m=s.match(模式);
log(m?m[1]:“不匹配”);

});您可以使用一个捕获组,该捕获组的第一部分带有可选部分和逗号

https?:\/\/\S+?\/((?:\w+,)?[A-Z][A-Z])
  • https?:\/\/
    将协议与可选的
  • \S+?\/
    尽可能少地匹配1+非空白字符
  • Capturegroup1(在示例代码中由
    m[1]
    访问)
    • (?:\w+,)?
      可以选择匹配1+个单词字符和一个逗号
    • [A-Z][A-Z]
      匹配2个大写字符
  • 关闭第1组

const pattern=/https?:\/\/\S+?\/((?:\w+,)?[A-Z][A-Z])/;
[
"https://abc.go.com/United_States,US/“,
"https://abc.go.com/US/",
"https://abc.go.com/Uganda,UG/“,
"https://abc.go.com/United_States,美国“,
"https://abc.go.com/"
].forEach(s=>{
常数m=s.match(模式);
log(m?m[1]:“不匹配”);

});能否请您告知此查询中每个表达式的作用?能否请您告知此查询中每个表达式的作用URL中存在多个“/”,URL可能看起来像,并且国家/地区和国家/地区代码的位置不固定URL中存在多个“/”,url可能看起来像,而且国家和国家代码的位置也不是固定的。就像这样,我的url中有一些字符串,其中包含“-”,例如:-1-@Rupam。你能给出一个带有连字符的url示例吗?就像这样,我的url中有一些字符串,其中包含“-”,例如:-1-”,//需要从这个2-“,//需要1-2,//从3-2开始需要15年-“”//从这里不需要任何东西我怎么能做到这一点,如果你能告诉我在哪里学习如何制作这些正则表达式expressions@Rupam您可以这样做,也可以像@Rupam那样编写模式,而不需要周围的非捕获组
(\d[^\/]*)\/
它在组1中捕获一个数字和可选字符(除了
/
之外),然后,在组外,它与
/
匹配。您可以阅读有关捕获组的内容,这里关于
[^
的部分与此类似。我的url中有一些字符串,其中有“-”在ex:-1-@Rupam的url中,您能给出一个带有连字符的url示例吗?就像这样,我的url中有一些字符串,其中包含“-”在ex:-1-”,//需要从这2-“”中得到1-2,//需要从这3-2-“”中得到15年//这里什么都不需要我怎么能做到这一点,如果你能告诉我在哪里学习如何制作这些正则表达式expressions@Rupam您可以这样做,也可以像@Rupam那样编写模式,而不需要周围的非捕获组
(\d[^\/]*)\/
它在组1中捕获除
/
之外的单个数字和可选字符,然后,在组外,它与
/
匹配。您可以阅读有关捕获组的内容,这里关于
[^
的部分是