Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于解析URL外术语的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 用于解析URL外术语的正则表达式

Javascript 用于解析URL外术语的正则表达式,javascript,regex,Javascript,Regex,我需要一个常规的express来解析URL的第一个目录: www.mydomain.com/查找此/anythis/anythis 所以--我不知道如何构造正则表达式来获取包含第一个目录的字符串,欢迎提供帮助 编辑--解析不是选项,我正在尝试创建正则表达式。您可以执行以下操作: var myString = "www.mydomain.com/find_this/anything/blah" var string_I_want = myString.replace(/\/\//g, "").sp

我需要一个常规的express来解析URL的第一个目录:

www.mydomain.com/查找此/anythis/anythis

所以--我不知道如何构造正则表达式来获取包含第一个目录的字符串,欢迎提供帮助

编辑--解析不是选项,我正在尝试创建正则表达式。

您可以执行以下操作:

var myString = "www.mydomain.com/find_this/anything/blah"
var string_I_want = myString.replace(/\/\//g, "").split("/")[1]
更容易阅读

您只需执行以下操作:

var myString = "www.mydomain.com/find_this/anything/blah"
var string_I_want = myString.replace(/\/\//g, "").split("/")[1]

更容易阅读

与第一个捕获组(原始正则表达式)匹配的内容:

匹配可选的
http://
/
https://
、webserver/ip/port,然后,第一个组就是您想要的

var url = 'www.mydomain.com/find_this/anything/anything';
var match = /^(?:https?:\/\/)?(?:\w+)(\.\w+)*(?:\:\d+)\/([^\/]+)/.exec(url);
var root = match[1];

第一个捕获组(原始正则表达式)匹配的内容:

匹配可选的
http://
/
https://
、webserver/ip/port,然后,第一个组就是您想要的

var url = 'www.mydomain.com/find_this/anything/anything';
var match = /^(?:https?:\/\/)?(?:\w+)(\.\w+)*(?:\:\d+)\/([^\/]+)/.exec(url);
var root = match[1];
试试这个:

str = "www.mydomain.com/find_this/anything/anything"; 
path = /(?:http\:\/\/)?(?:www)?\.mydomain\.com\/([^\/]+)/.exec(str) [1]
试试这个:

str = "www.mydomain.com/find_this/anything/anything"; 
path = /(?:http\:\/\/)?(?:www)?\.mydomain\.com\/([^\/]+)/.exec(str) [1]
以下是一些选项:

捕获:

/(.*?)/
使用命名捕获:

/(?<first_directory>.*?)/
(?:https?://.*?)?/(.*?)/
(?:https?://.*?)?/(?<first_directory>.*?)/
使用协议和命名捕获:

/(?<first_directory>.*?)/
(?:https?://.*?)?/(.*?)/
(?:https?://.*?)?/(?<first_directory>.*?)/
(?:https?:/*?/(?*?)/
您只需根据自己的口味进行翻译。

以下是一些选项:

捕获:

/(.*?)/
使用命名捕获:

/(?<first_directory>.*?)/
(?:https?://.*?)?/(.*?)/
(?:https?://.*?)?/(?<first_directory>.*?)/
使用协议和命名捕获:

/(?<first_directory>.*?)/
(?:https?://.*?)?/(.*?)/
(?:https?://.*?)?/(?<first_directory>.*?)/
(?:https?:/*?/(?*?)/

您只需根据自己的口味进行翻译。

只需尝试以下操作:

var rootDir = location.pathname.replace(/(^\/\w+\/).*/,"$1");

请尝试以下方法:

var rootDir = location.pathname.replace(/(^\/\w+\/).*/,"$1");

我要找普通快车是有原因的。无解析。@Atticus这是一个聪明的答案,您应该展示您的尝试。是否在.htaccess中使用正则表达式?如果我不寻找正则表达式,我会这样做。不幸的是,我的客户使用的系统通过正则表达式检查传入的链接。我寻找正则表达式是因为一个特定的原因。无解析。@Atticus这是一个聪明的答案,您应该展示您的尝试。是否在.htaccess中使用正则表达式?如果我不寻找正则表达式,我会这样做。不幸的是,我的客户端使用的系统通过正则表达式检查传入链接。如果您需要来自当前浏览器位置的第一个目录,则此操作有效。如果您需要来自当前浏览器位置的第一个目录,则此操作有效。