JavaScript正则表达式过滤两个字符之间的文本[重复]
Posted
技术标签:
【中文标题】JavaScript正则表达式过滤两个字符之间的文本[重复]【英文标题】:JavaScript Regex to filter text between two characters [duplicate] 【发布时间】:2020-01-21 01:05:49 【问题描述】:我需要使用Regex javascript
从字符串中过滤下面的文本:
文字:'http://www.mywebsiteameW1234.com'
应该只返回:mywebsitename
所以在字符点之间只有小写字母:
我的尝试只是返回:mywebsitenameW1234 应该删除数字:
let text = 'http://www.mywebsitenameW1234.com'
console.log(text.match(/(?<=\.)(.*)(?=\.)/gm)[0])
我尝试了几种方法来尝试过滤而不是 (.*) 放置类似 ([a-z]+) 但总是返回 null。
我做错了什么?为什么我不能在组之间添加这些过滤器向前/向后等等?
【问题讨论】:
【参考方案1】:例如,一个表达式是:
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 = `$1`;
const result = str.replace(regex, subst);
console.log(result);
如果您希望简化/修改/探索表达式,在regex101.com 的右上角面板中已对此进行了说明。如果您愿意,您还可以在 this link 中观看它如何与一些示例输入匹配。
正则表达式电路
jex.im 可视化正则表达式:
【讨论】:
【参考方案2】:这个怎么样。
[a-z]*
表达式确保它只匹配字符串中第一个点之后的小写字母。
let text = 'http://www.mywebsitenameW1234.com'
console.log(text.match(/(?<=\.)[a-z]*/gm)[0])
【讨论】:
以上是关于JavaScript正则表达式过滤两个字符之间的文本[重复]的主要内容,如果未能解决你的问题,请参考以下文章