我试图从这个字符串中提取“需要”一词。
ctl00_ctl00_ContentMainContainer_ContentColumn1__needDont_Panel1
我试过了[__]([.]?=Dont)
这是使用javascript .match()
我甚至试图使用http://gskinner.com/RegExr/但是无法解决这个问题。谢谢你的帮助!
答案 0 :(得分:2)
(?<=__)\w+(?=Dont)
匹配__和Dont之间的所有字母数字
修改强>
抱歉,我没有注意到JavaScript一词。它不支持lookbehind,因此可以在那里使用__(\w+)(?=Dont)
。
如果正则表达式匹配,即使__之间没有任何内容,也不要使用“\ w *”代替“\ w +”。小心“。*”因为dot几乎匹配所有字符,你在ID中是否允许空格?
我没注意到
答案 1 :(得分:1)
这将实现您的目标:
__(.*)(?=Dont)
您似乎混淆了character class - 方括号[]
- 的作用,而应该使用常规括号()
。
在正则表达式[__]
中,只匹配一个下划线_
,而[.]
将匹配一个句点。
答案 2 :(得分:1)
您的错误是写[__]
而不是__
(没有大括号)。 [__]
仅匹配一个下划线,因此它将匹配_ctl00_ContentMainContainer_ContentColumn1__need
。
[。]也错了。你应该使用类似的东西:[^ _] +(除了下划线之外的任何东西)。