2010-10-29 2 views
3

Я пытаюсь самостоятельно определить регулярное выражение и безрезультатно, могу ли я получить последнюю скобку, чтобы исчезнуть из строки.Срезанные скобки и слово «The» из строки

Например:

[День, когда Земля остановилась]

я могу получить только:

День, когда Земля остановилась]

со следующим RegEx код:

/(\[|\](^The))\2/ 

я и добиваюсь всего:

День Земли Еще

Стоял Любая помощь будет высоко оценена. Я потратил 3 часа, пытаясь понять это на моем собственном ... Это я поддающийся:. 3

ответ

2

Вы можете попробовать:

\[The\s(.*)] 

Если вам это нужно работать, чтобы вырезать скобки даже тогда, когда «The» нет, вы можете попробовать:

(?:\[The\s|\[)(.*)] 

Если вы думаете, что будет работать в случае, когда вы можете иметь «тем» или «» вы можете попробовать:

(?:\[[Tt]he\s|\[)(.*)] 

Вот код, чтобы осуществить захват текста без скобок и «The»:

var title = new Array(); 
title[0] = "[The Day the Earth Stood Still]"; 
title[1] = "[Independence Day]"; 
title[2] = "[the Day the Earth Stood Still]"; 

alert(title[0].match(/(?:\[[Tt]he\s|\[)(.*)]/)[1]); 
alert(title[1].match(/(?:\[[Tt]he\s|\[)(.*)]/)[1]); 
alert(title[2].match(/(?:\[[Tt]he\s|\[)(.*)]/)[1]); 

Попробуйте здесь: http://jsfiddle.net/aSwYz/

+0

Ну, он стирает скобки и «The», но он удаляет все остальное. – Mattan138

+0

Какой код вы используете? – tinifni

+0

Я попробовал их всех и получил тот же результат. – Mattan138

0

Может быть, вы должны принять подход мышления, что вы хотите, чтобы вместо что вы хотите, чтобы избавиться от

(?<=\[The\s*)[\w\s]*(?=\]) 

в противном случае, вы пытаетесь сделать матч в отдельных частях строки и должно быть сделано с 2-мя различными спичек

Смежные вопросы