JavaScript 正则表达式 : how to not capture an optional string on the right side

标签 javascript regex

例如 /(www\.)?(.+)(\.com)?/.exec("www.something.com") 将得到 'something.com' at结果数组的索引 1。但是,如果我们只想捕获捕获组中的“某些内容”怎么办?

澄清:

  1. 上面的字符串只是举例 - 我们不想对后缀字符串(上面的 .com)做出任何假设。它也可以是橙色的。
  2. 这部分可以在 C# 中通过从右到左匹配来解决(虽然我不知道在 JS 中如何做到这一点),但最终会得到 www.那么就包括在内!
  3. 当然,将正则表达式与其他字符串方法(例如替换/子字符串)混合可以轻松解决这个问题。但是有没有仅使用正则表达式的解决方案?

最佳答案

(?:www\.)?(.+?)(?:\.com|$)

这只会在中提供某些内容。只需让其他组不捕获即可。请参阅演示。

https://regex101.com/r/rO0yD8/4

关于JavaScript 正则表达式 : how to not capture an optional string on the right side,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31970993/

相关文章:

javascript - 带或不带国家代码的手机号码的正则表达式

javascript - jQuery 数据表 : Weird sorting with Dates

javascript - jQuery Datepicker "After Update"事件或等效事件

javascript - Mirror.js中的矩阵运算(三个js)

javascript - Rails、javascript 和更新表单

regex - 将基本 Access 查询条件表示为正则表达式

javascript - 悬停在 Firefox 中不起作用

java - Java中如何将字符串转换成数组

c - 使用 Regex (POSIX) 在 #ifdef 语句外查找 printf() 调用

regex - 带有特殊字符的字母顺序 perl