期望的行为
我有一个输入验证,除其他外,测试长度(
我的输入接受降价,我想在长度计算中排除URL的长度。
例如,显示为:
这里有一个很长的链接,指向这篇关于Math.random()的文章
长度为
57个
字符,而实际代码长度为155个
字符,即:
here is a very long link to this article on [Math.random()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random)
需要涵盖的场景包括:
文本和[一个降价链接](https://google.com)
text(和[括号内的标记链接](https://google.com))
这个问题是关于:
如何获取字符串中括号中的所有值,包括嵌套括号。
我试过的
我目前处理整个问题的方法是:
获取字符串中括号内的所有值
以下是我在第一部分的尝试:
01)
这个解决方案刚好得到第一个“匹配”,来源:https://stackoverflow.com/a/12059321
var text = "here is a (very) long link to this article on [Math.random()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random)";
var regExp = /\(([^)]+)\)/;
var matches = regExp.exec(text);
console.log(matches);
// 0: "(very)"
// 1: "very"
02)
此解决方案获得所有匹配,包括括号,来源:https://stackoverflow.com/a/30674943
var text = "here is a (very) long link to this article on [Math.random()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random)";
var regExp = /(?:\()[^\(\)]*?(?:\))/g;
var matches = text.match(regExp);
console.log(matches);
// 0: "(very)"
// 1: "()"
// 2: "(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random)"
但在嵌套括号场景中,它并不像预期的那样工作,即:
var text = "text (and [a markdown link within parenthesis](https://google.com))";
var regExp = /(?:\()[^\(\)]*?(?:\))/g;
var matches = text.match(regExp);
console.log(matches);
// ["(https://google.com)"]
03)
这里有一个似乎相关的
php
regex解决方案:
https://stackoverflow.com/a/12994041
但是我不知道如何在javascript中实现正则表达式,即:
preg_match_all('/^\\((.*)\\)[ \\t]+\\((.*)\\)$/', $s, $matches);
我将使用一个正则表达式,它还要求方括号中的部分位于括号内的链接之前。
/\[([^\]]+)\]\([^)]+\)/g
确保使用g
标志。这还包括一个捕获组,以便您可以区分“可见”部分(方括号之间)和其他“不可见”部分:
var text = "here is a (very) long link to this article on [Math.random()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random)";
var regExp = /\[([^\]]+)\]\([^)]+\)/g;
var match;
while (match = regExp.exec(text)) {
console.log("full match: " + match[0]);
console.log("keep: " + match[1]);
}
问题内容: 如何获取字符串中的括号值。 我只需要AED文字。谢谢 问题答案: 编译并打印“ AED”。甚至适用于多个括号: 正则表达式表示: :字符 :开始比赛组 :以下字符之一 :不是以下字符 :与前面的一样,这表示“除” 以外的所有字符 :集合中的其他内容之一 :停止比赛组 :字面量闭式括号
我想在像这样的文本中插入()并将它们放入数组中,但里面可能有一些嵌套的括号。 文本: 应该这样处理: 我怎么能这么做?
我有下一个带嵌套括号的字符串: 我想用打印出来的每个括号的值填充一个数组:
当我使用之类的东西时,它仍然会触发,就像连字符无效一样。我尝试了和
我想匹配括号内的字符串,如: 字符串也可以包含闭括号。如何在不编写解析器的情况下将其与Java中的正则表达式匹配,因为这是我项目的一小部分。谢谢 编辑: 我想搜索一个字符串块,找到类似于,或只是
问题内容: 我有一个样本字符串 我只想要该值而不是(在另一个内部) 如何在Python中以最简单的方式做到这一点?也许通过使用RegEx(我不擅长)? 问题答案: 怎么样: 对我来说,这打印: 请注意,调用会找到与正则表达式的第一个匹配项,因此除非您再次重复搜索,否则它将不会找到。 编辑: 这里的正则表达式是python原始字符串文字,基本上意味着反斜杠不会被视为特殊字符,而是会原样传递给方法。正