javascript - 正则表达式环视行首
问题描述
我有这个正则表达式https://regex101.com/r/wRBBAz/1
(?<=\s|^|\.)[^ \.]+(?=\s*(\())
输入测试
test1 {...}
test2();
我在环视中指定了行首 (^),所以我不明白它为什么选择
}
test2
而不仅仅是
test2
解决方案
问题是[^ .]
匹配除空格和点之外的任何字符,也就是说,它匹配换行符。
您可以使用
(?<![^.\s])[^\s.]+(?=\s*(\())
查看正则表达式演示
细节
(?<![^.\s])
- 匹配位于字符串开头或紧接在点或空格前面的位置的否定后向查找[^\s.]+
-除空格外的任何一个或多个字符和.
(?=\s*(\())
- 一个肯定的前瞻,确保有零个或多个 whitespces,然后(
在当前位置的右侧有一个(捕获到第 1 组)。
推荐阅读
- typescript - 泛型 'T' 不可分配给类型为 'never' typescript 的参数
- mysql - MySQL 结果从数据库中选择 SUM
- amazon-web-services - Kubernetes pod 卡在挂起状态并且没有事件
- cordova - 获取指纹 AIO 错误:当我尝试运行应用程序时 plugin_not_installed
- python - 硒蟒 | 等待整个页面加载,不依赖于动态元素
- flutter - DioError [DioErrorType.RESPONSE]:Http 状态错误 [404]
- react-native - 如何解决 React Native 构建错误?
- html - 带有 CSS 选择器的点击元素在 Google 跟踪代码管理器中不起作用
- php - Mysql PHP 查询。您如何将数据库中的两个不同列“排序”在一起?
- authentication - 如何检查来自另一个 keycloak 实例 B 的身份验证 keycloak 实例 A 用户?