将字符串与以下内容匹配的正确正则表达式是什么?
- 新行开头的任意 16 个字符。
- 后跟一个冒号
:
我想出了这个,但不知道是否足够:
.{16}:
你错过了行的开头,^
:
^.{16}:
我要提供的唯一更正是:
^.{16}:
插入符号 ( ^
) 锚定到行首。
那将是:
^(.{16})[?=:]
. almost any character
{n} How many
[?=X] Followed by
也许更简单 ^.{16}:
在 PHP 中,这将是这样的:
/^([^:]{16}):/m
一些细节:
^
行首/
是正则表达式分隔符[^:]
包装任何字符,但:
. 我不使用“。” 为了避免在 16 个字符之间有“:”时出现问题。如果您无论如何都想抓住它,那么只需使用“。” 正如你正在做的那样。{16}
重复此操作 16 次。([^:]{16})
括号捕获匹配的值。它被存储到一个引用中,稍后可以由“\”或“$”获取,具体取决于您使用的语言。m
这里是魔法。“m”是多行修饰符。这将使表达式在文本的每一行中执行。在 javascript 中,此修饰符是“g”(全局)。希望能帮助到你!