JavaScript 正则表达式过滤两个字符之间的文本

JavaScript Regex to filter text between two characters

我需要使用 Regex JavaScript:

从字符串中过滤下面的文本

文本:“http://www.mywebsiteameW1234.com

仅应 return:我的网站名称

所以在字符点和小写字母之间:

我的尝试只是 returning:mywebsitenameW1234 应该删除数字:

let text = 'http://www.mywebsitenameW1234.com'
console.log(text.match(/(?<=\.)(.*)(?=\.)/gm)[0])

我尝试了几种方法来尝试过滤而不是 (.*) 放置类似 ([a-z]+) 的东西 但始终 return 为空。

我做错了什么?为什么我不能在组之间添加那些过滤器 look ahead/behind,等等?

这个怎么样。

[a-z]* 表达式确保它只匹配字符串中第一个点之后的小写字母。

let text = 'http://www.mywebsitenameW1234.com'
console.log(text.match(/(?<=\.)[a-z]*/gm)[0])

例如,一个表达式是:

https?:\/\/(?:www\.)?([a-z]+).*

左边界。

Demo 1


另一个是,

([a-z]+)[^a-z\r\n]*\.[a-z]{2,6}$

Demo 2

它是右界的,如果有必要,您也可以将其双界。


或者环顾四周,一种选择是,

[a-z]+(?=[^a-z\r\n]*\.[a-z]{2,6}$)

Demo 3

const regex = /https?:\/\/(?:www\.)?([a-z]+).*/gm;
const str = `http://www.mywebsiteameW1234.com`;
const subst = ``;

const result = str.replace(regex, subst);

console.log(result);


如果您希望 simplify/modify/explore 表达式,regex101.com. If you'd like, you can also watch in this link 的右上面板已对其进行说明,它将如何匹配一些样本输入。


正则表达式电路

jex.im 可视化正则表达式: