Regex 如何检查所选正则表达式单词是否包含子字符串?
我创建了一个正则表达式来匹配Regex 如何检查所选正则表达式单词是否包含子字符串?,regex,Regex,我创建了一个正则表达式来匹配.vue组件 它应该匹配所有的组件,这些组件的基名不以Async结尾。因此,除了文件名(不带扩展名)以Async结尾的组件外,所有.vue组件都应该匹配 所以这些不应该匹配 ./deals/deal/countdown/CountdownWarningAsync.vue ./test/deal/countdown/SomeComponentAsync.vue 这些应该是 ./deals/deal/countdown/AsyncCountdownWarning.vue
.vue
组件
它应该匹配所有的组件,这些组件的基名不以Async
结尾。因此,除了文件名(不带扩展名)以Async
结尾的组件外,所有.vue
组件都应该匹配
所以这些不应该匹配
./deals/deal/countdown/CountdownWarningAsync.vue
./test/deal/countdown/SomeComponentAsync.vue
这些应该是
./deals/deal/countdown/AsyncCountdownWarning.vue
./deals/deal/countdown/SomeComponent.vue
./recenthotels/RecentHotels.vue
我知道如何在没有Async
部分的情况下捕获它,但是如何检查以Async
结尾的basename不是
JS不支持lookbehinds,或者说实话,它在googlechrome的V8引擎上有一个不成熟的实现,但其他主要浏览器没有做到这一点 使用负前瞻:
\/[A-Z](?!\w*Async\.vue$)\w+\.vue$
正则表达式细分:
匹配\/[A-Z]
和大写字母/
开始负前瞻(?!
匹配以下字母\w*
到目前为止Async\.vue$
前瞻结束)
匹配单词字符\w+
至\.vue$
扩展.vue
文件名,而不需要扩展名,可以尝试以下操作:
[^\/]*(?<!Async)(?=\.vue)
[^\/]*(?
请指定您在标记中使用的语言