У меня есть следующее регулярное выражение, чтобы найти слово в тексте и выделить ихЧто не так с этим регулярным выражением?
Использование поверхности слова для целей тестирования.
/((?<=[\W])surface?(?![\w]))|((?<![\w])surface?(?=[\W]))/iu
Он соответствует всем вхождениям в следующем тексте.
поверхность CoP-20-70-0000-04-02_Pre-Run_Tool_Verification_Programming_and_surface_Tare surface_revC.pdf
Но если я изменить первое вхождение поверхности содержит заглавную букву, он совпадает только первое вхождение ,
Поверхностно-CoP-20-70-0000-04-02_Pre-Run_Tool_Verification_Programming_and_surface_Tare surface_revC.pdf
Или если я положить заглавную букву в некоторых других вхождений он совпадает.
Поверхностно-CoP-20-70-0000-04-02_Pre-Run_Tool_Verification_Programming_and_Surface_Tare surface_revC.pdf
Можете ли вы использовать '\ b' вместо своего тяжелого соответствия lookbehind? – strager
FYI, '/ surface? /' Соответствует '' surfac''. 'e?' делает опцию 'e' опциональной. Может быть, вы хотите '(поверхность)?', Или, может быть, вам нужно что-то еще (это непонятно). – polygenelubricants