Javascript正则表达式所有字符直到word
我有这样的字符串:Javascript正则表达式所有字符直到word,javascript,regex,Javascript,Regex,我有这样的字符串: blah-ha-ID: asdf 我想匹配所有字符,直到最终-ID: 所以我最初的正则表达式是: ^[^-]+ 这种方法一直有效,直到单词开始有了hypnes。因此,在上面的示例中,在blah-ha-ID:中,它将选择直到blah它应该得到blah-ha为止 所以我试着这样做,我想重复所有不是-ID ^[^-ID]+ 但这当然行不通。我不能使用捕获,我需要它来排除最后的-ID ^[^-ID]+ 除此之外,我还希望了解如何做到这一点,我记得在这些字符类中有一种方法可以重
blah-ha-ID:
asdf
我想匹配所有字符,直到最终-ID:
所以我最初的正则表达式是:
^[^-]+
这种方法一直有效,直到单词开始有了hypnes。因此,在上面的示例中,在blah-ha-ID:
中,它将选择直到blah
它应该得到blah-ha
为止
所以我试着这样做,我想重复所有不是-ID
^[^-ID]+
但这当然行不通。我不能使用捕获,我需要它来排除最后的-ID
^[^-ID]+
除此之外,我还希望了解如何做到这一点,我记得在这些字符类中有一种方法可以重复到“单词”为止。您可以使用以下正则表达式:
/^(.+?)(?=-ID|$)/
这将从开始到文字-ID
或行尾匹配1个或多个字符-ID
处于正向前瞻状态,因此它不会被匹配
这适用于所有人
其中,我在一行中添加了退化的
-ID:
。您不需要Regexp,使用字符串的lastIndexOf
insteadThank@hindsmost,但我需要在一个简单的替换中使用它。无需捕获和使用函数替换。您仍然可以使用lastIndexOf
进行替换substr
/substring
会有帮助。@lastIndexOf的最新问题是如果没有-ID
,该怎么办?谢谢Anubhava,但我需要它不要在末尾选择-ID:(我不能使用capuring:(感谢您的编辑,它对我的案例有效,但有可能完成我的gorup任务吗?如果可能的话,我希望学习它。有一些技巧,如[^-[^I[^D]]]
但只要stack允许,我会尽快接受你的解决方案。对于较长的文本,这种技巧会变得非常笨拙,因此我建议只在前瞻性不可用的情况下使用。啊,问题是,如果它没有-ID
结尾,它就没有匹配:(谢谢,这很有趣