regex - 如何检查选定的正则表达式单词是否包含子字符串?
问题描述
我创建了一个正则表达式来匹配一个.vue
组件。
它应该匹配所有基本名称不以 .结尾的组件Async
。因此,除了文件名(不带扩展名)以 . 结尾的组件外,所有.vue
组件都应匹配Async
。
所以这些不应该匹配
./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
?
解决方案
JS 不支持lookbehinds,老实说,它在 Google Chrome 的 V8 引擎上有一个不成熟的实现,但其他主要浏览器还没有这样做。
使用负前瞻:
\/[A-Z](?!\w*Async\.vue$)\w+\.vue$
正则表达式分解:
\/[A-Z]
匹配/
和大写字母(?!
负前瞻开始\w*
匹配以下字母Async\.vue$
至此
)
前瞻结束\w+
匹配单词字符\.vue$
直至.vue
扩展
推荐阅读
- c - 已解析 JSON 的 CJSON 长度
- c++ - 创建柯南 test_package 配方
- selenium - 无法从 svg 标签中获取文本
- windows - Windows bat 文件:在 bat 目录中复制文件
- c++ - C++获取std::variant当前帮助的类型的std::typeindex
- c - 范围内随机数生成器的条件语句(在 c 中)
- encryption - 如何检查字符串是无意义的还是一组英文单词
- json - 在 bash 终端中键入“npm start”时出现多个错误
- r - 是否可以使用 geom_text 将文本放在每个构面面板下方并将其与刻度线对齐?
- python - 如果不满足另一列中的条件,则尝试从 pandas 中的列返回值