Так у меня есть это регулярное выражение:Nodejs ошибка регулярное выражение: «Недопустимое регулярное выражение: ничего, чтобы повторить»
(?:[ \t]*)?(?:\/\/|\/\*)[ \t]*#exclude[ \t]*([^\n*]*)[ \t]*(?:\*\/)?(?:[ \t]*[\r\n]+)?((?:.|\n|\r)*?)(?:[ \t]*)?(?:\/\/|\/\*)[ \t]*#endexclude[ \t]*(?:\*\/)?(?:[ \t]*[\r\n]+)?
который должен соответствовать что-нибудь, что выглядит следующим образом:
/* #exclude */
hurdur = somerandomtextorcode;
/* #endexclude */
Я пытаясь это регулярное выражение в таких инструментах, как https://regex101.com/ (https://regex101.com/r/eA5oK9/1), и там он просто работает, никаких ошибок.
Однако в nodejs среде, я получаю эту ошибку, которую я действительно не знаю, как решить:
Warning: Invalid regular expression: /(?:[ ]*)?(?://|/*)[ ]*#exclude[
]*([^
]*)[ ]*(?:*/)?(?:[ ]*[
]+)?((?:.|
|
)?)(?:[ ]*)?(?://|/*)[ ]*#endexclude[ ]*(?:*/)?(?:[ ]*[
]+)?/: Nothing to repeat Use --force to continue.
Любая помощь по этому вопросу будет весьма признателен!
Похоже, '' t 'и' \ n' были взяты буквально. Вы используете 'new Regexp' случайно? – georg
Да, я использую 'new RegExp ('(?: [\ T] *)? (?: \/\/| \/\ *) [\ T] * # exclude [\ t] * ([^ \ n *] *) [\ t] * (?: \ * \ /)? (?: [\ t] * [\ r \ n] +)? ((?:. | \ n | \ r) * ?) (?: [\ t] *)? (?: \/\/\ \/\ *) [\ t] * # endexclude [\ t] * (?: \ * \ /)? (?: [ \ t] * [\ r \ n] +)? ',' gi ') ' , чтобы создать регулярное выражение. Это проблема? –
Да, он превращает '\ n' в литеральные разрывы строк. Либо используйте литерал регулярного выражения '/.../', либо удвоить все обратные косые черты, т. Е. '\\ n' и т. Д. – georg