我有一个简单的正则表达式(在C#中使用):如何不让正则表达式做出太多步骤?
\becua(?:[a-zA-ZáéíóúñÑÑäëïöü])*\b(.(?!embajada))*\s+embajada
1)字开头 “ecua”
2)无论之后附带该
3)单词 “Embajada酒店” 之后“无论“
但它使太多的步骤,我该如何防止这种情况?我只是希望它能够通过字符,直到找到“embajada”这个单词,而不是在每一个字符上都回溯。这似乎是简单的正则表达式,但是当我用一个更大的文本,它抛出一个灾难性的回溯(或超时)当模式失败
例子:https://regex101.com/r/tQ7mM9/4
在此先感谢
你必须使用'(?= Embajada酒店)'代替'(?!Embajada酒店) ',我想 – rock321987
你的文字中没有“embajada”这个词,只有“gembajada”。 –
我会展开它:https://regex101.com/r/iR5eW3/1 –