2016-12-20 3 views
0

У меня есть текст, как этотРегулярное выражение совпадало последнее вхождение в подстроки

words words words tag a words words tag a words tag b words time words words tag c words time 

Я не знаю, что такое, Ь и с. То, что я хочу, чтобы захватить это «tag b words time», tag c words time "и подобного ему. Так что моя попытка регулярное_выражение была tag[\w ]+?time. Но что соответствует

tag a words words tag a words tag b words time 

Как захватить последнее вхождение тега? Я использую MATLAB так . если есть не решение регулярного выражения к этому, что было бы слишком большим

+0

https://in.mathworks.com/help/matlab/ref/strfind.html?requestedDomain=www.mathworks.com #responsive_offcanvas для без регулярного выражения. – Garfield

+0

@ LonelyPlanet вы не можете сделать это здесь, так как я не знаю, что такое a/b/c, как я упоминал в вопросе –

ответ

1

Это должно сделать:

tag\s*[\w]\s*[\w]+\s*time 
+0

Я пробовал его на regex101.com, и это ничего не соответствует. –

+0

@ rick_2047 отредактировал, исправил его – MoustafaS

+1

Wow! это работает. Нужно было немного изменить, когда я применил его к реальной проблеме, но это хорошее общее решение. благодаря –

0

вы можете использовать это регулярное выражение:

/tag [a-z]{4} [\w]+ time$/ 

Вот рабочий пример (в JavaScript, однако, если вы используете PCRE, он должен работать в matlab to).

s1 = "words words words tag a words words tag a words tag b words time words words tag cccc words time" 
 
re = /tag [a-z]{4} [\w]+ time$/ 
 
console.log(s1.match(re))

+0

. Я думал, что будет ясно, что «слова» - всего лишь манекен. Кроме того, это будет захватывать только последнее вхождение во всей строке. –

+0

так что c и слова являются пустыми? что можно туда пойти? как вы определяете эти символы/слова? – Dekel

+0

Определите их? Я не совсем понимаю, о чем вы спрашиваете. Это просто слова в текстовом файле. –

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