Я знаю, что в regex мы можем использовать ^
, чтобы объявить что-либо, кроме. Например, [^ ]*?
означает строку без пробела. Как мы можем использовать это, чтобы найти за исключением более двух последовательных символов. Fro пример строки, которая не содержит {{
, когда она может содержать один {
. Я попробовал это и не получилось:Regex и python для выражения, не совпадающего с несколькими последовательными символами
re.compile(r"(\{\{`[^(\{\{)]*?\}\}`)
re.compile(r"(\{\{`[^\{\{]*?\}\}`)
Это поймать строки в файле, который начинается с {{
и заканчивается }}
но не содержит }}
в то время как они могут содержать один }
. Кроме того, использование .*
не является вариантом.
input_string="blah blah blah {{cite journal |last=Malatesta|first=Errico|title=Towards Anarchism|journal=MAN!|publisher=International Group of San Francisco|location=Los Angeles|oclc=3930443|url=http://www.marxists.org/archive/malatesta/1930s/xx/toanarchy.htm|archiveurl=http://web.archive.org/web/20121107221404/http://marxists.org/archive/malatesta/1930s/xx/toanarchy.htm|archivedate=7 November 2012 |deadurl=no|authorlink=Errico Malatesta |ref=harv}} blah blah blah"
regexp_1 = re.compile(r"(\{\{[^\}]*?\}\})")
output = regexp_1.sub("",input_string)
Теперь regexp_1
, я хочу, чтобы заменить [^\}]*?
с [^\}\}]*?
, и я знаю, что [^\}\}]*?
не является правильным, поскольку она работает так же, как [^\}]*?
.
Ну, чтобы начать то, что вы показали в своем коде здесь не будет компилировать, это недостающие скобки и кавычки. Не могли бы вы также привести пример текста, который вы хотели бы проанализировать, пожалуйста? – themantalope
Насколько я знаю, вы не можете использовать что-то вроде '[^ word]', поскольку это будет соответствовать только любому символу, но 'w',' o', 'r',' d'. Также я знаю, что вы можете использовать негативные образы, такие как 'myword (?! Something)', чтобы соответствовать 'myword', только если за ним не следует' something'. Тем не менее, я знаю, что есть какие-то трюки, которые могут соответствовать любым словам, кроме слова –
, можете ли вы разместить некоторые образцы данных для чего хотите, а что нет? –