javascript - 可选的捕获组直到行尾
问题描述
给定以下字符串
我有以下正则表达式
^\/\/\s(prevent\s?eval\s|eval\s?prevent)\s?([^\n]*)$
我想要做的是匹配以下内容:
// preventeval
hello world
[预防评估]
// preventeval meow
hello world
[preventEval,喵]
解决方案
\s
匹配任何空白字符,换行符是空白字符,所以它被它匹配(然后整个下一行被匹配([^\n]*)
)。
可选地匹配一个纯空格(并在第一个交替中\s
从末尾删除)。prevent\s?eval\s
您也可以使用.*
而不是[^\n]*
,您可能无论如何都不想匹配换行符:
^\/\/\s(prevent\s?eval|eval\s?prevent) ?(.*)$
听起来您可能不希望任何s 匹配换行符,\s
在这种情况下,将它们全部替换为纯空格:
^\/\/ (prevent ?eval|eval ?prevent) ?(.*)$
推荐阅读
- c++ - 虚幻引擎 4:未调用 C++ 委托
- ios - 如何确保蓝牙应用程序只能连接到原始外围设备?
- javascript - 如何使用 Ionic 3 在 Android 上为 Image() 触发 onload 事件
- reactjs - 使用 MongoDB 获取和 ObjectParameterError
- java - 无法使用 POJO 类获取令牌并保存到字符串中
- visual-studio-code - VSCode 键绑定:命令与命令 ID?
- javascript - 有没有办法访问/读取和修改 .swz 文件的内容?
- python - 在主函数中调用异步函数
- corda - 从 RPC 客户端 vaultTrackBy 检索错过的 Corda 事务
- php - 在php中将客户端日期时间存储到UTC