javascript - 匹配带有前导星号或尾随星号的行的正则表达式
问题描述
我需要匹配以单个星号字符开头或结尾的每一行,中间没有任何其他星号。
1.- foo BAR, FOO1*
2.- *FOO, bar% foo
3- *foo). BAR", fOo*
4.- **foo BAR foo
5.- *foo bar foo**
6.- foo bar * foo
7.- foo bar foo
我想匹配第 1 到第 3 行,其他行我不会匹配它们。
我的方法:
^[\*](?:[a-zA-Z0-9.!#$%&'+/=?^_`{|}~-\s])|^[a-zA-Z0-9.!#$%&'+/=?^_`{|}~-\s]+.\*$
但并非在所有情况下都有效。
解决方案
为什么会出现这样的并发症?尝试:
(^\*[^*]*\*?$|^[^*]*\*$)
见https://regex101.com/r/oOCSE5/6
基本上,您有两种情况,(
第一种情况,|
第二种情况)
,在上面的正则表达式中表示:
- 字符串以星号开头
^\*
,不包含星号[^*]*
,并以一个或零个星号结束\*?$
- 字符串不包含任何星号
^[^*]*
,除了最后一个字符\*$
推荐阅读
- javascript - 如何使用 fs.appendSyncFile 写入文件(写入树莓派服务器)
- powershell - 如何在 Powershell 中对 CSV 列进行排序?
- jquery - 错误:SyntaxError:JSON 中的意外标记 <
- python - Django 中 __lte 和 __gte 的区别
- java - 如何在不使用节点的情况下交替合并链表?并使用递归?
- javascript - 有没有办法覆盖 z-index
- apache-kafka - 在 Kafka 中,如何在两个偏移量之间重放 kafka 消费者?
- apache-kafka - 如何在带有 MongoDB 的 Kafka Connect Sink 连接器中获取 kafka 消息的标头
- prometheus - 如何创建查询以监控 docker 容器一天运行了多少分钟
- html - PrimeNG - 订单列表