【问题标题】:regex match all characters after open bracket [正则表达式匹配左括号 [ 后的所有字符
【发布时间】:2011-09-02 10:19:36
【问题描述】:

我正在使用正则表达式

/(?<=\[)(.*)/i

匹配[ 之后的每个字符。用户将键入如下内容:

你好,这是[我想要的

我希望它匹配 what i want。它似乎适用于正则表达式测试器:http://gskinner.com/RegExr。当我在我的代码中使用它时,它根本不起作用。这是因为我没有使用正确的正则表达式风格吗?这是我的sn-p:

var location = document.getElementById('locationField').value=(commandLineInput.match(/(?<=\[)(.*)/i));

我只是想让“位置”变量成为[之后的所有内容。

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    Javascript 不支持后视。顺便说一句,您为什么使用 i 标志?您的正则表达式中没有字母。

    怎么样:

    var str  = "hello this is [what i want";
    var want = str.match(/\[(.+)$/)[1];
    

    改为?

    【讨论】:

    • 用哪种语言编写正则表达式更好?我真的不擅长 HTML,但我想更重地学习 php 和 javascript - 以及我可以用所有选项编写正则表达式的任何语言。
    • @user Perl 可以说是目前最强大的正则表达式引擎之一,但 PHP 的正则表达式支持还不错。 JS 的正则表达式支持非常糟糕。
    • 我开始觉得JS就是这样的。感谢您的帮助,stackoverflow 及其社区是一个了不起的帮助。
    • 你应该把它设为str.match(/\[(.+)$/) || [0, ''][1];,以防万一没有括号。
    • 有没有办法让它说“如果只有[字符串中的括号”然后按照这个答案提供 - 但是如果“[然后是一个]”括号,只拉括号之间的内容?
    猜你喜欢
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    相关资源
    最近更新 更多