1

将字符串与以下内容匹配的正确正则表达式是什么?

  • 新行开头的任意 16 个字符。
  • 后跟一个冒号:

我想出了这个,但不知道是否足够: .{16}:

4

4 回答 4

5

你错过了行的开头,^

^.{16}:
于 2012-08-09T19:07:40.870 回答
3

我要提供的唯一更正是:

^.{16}:

插入符号 ( ^) 锚定到行首。

于 2012-08-09T19:08:56.847 回答
1

那将是:

^(.{16})[?=:]

. almost any character
{n} How many
[?=X] Followed by

也许更简单 ^.{16}:

于 2012-08-09T19:09:01.463 回答
1

在 PHP 中,这将是这样的:

/^([^:]{16}):/m

一些细节:

  • ^行首
  • /是正则表达式分隔符
  • [^:]包装任何字符,但:. 我不使用“。” 为了避免在 16 个字符之间有“:”时出现问题。如果您无论如何都想抓住它,那么只需使用“。” 正如你正在做的那样。
  • {16}重复此操作 16 次。
  • ([^:]{16})括号捕获匹配的值。它被存储到一个引用中,稍后可以由“\”或“$”获取,具体取决于您使用的语言。
  • m这里是魔法。“m”是多行修饰符。这将使表达式在文本的每一行中执行。在 javascript 中,此修饰符是“g”(全局)。
  • 希望能帮助到你!

    于 2012-08-09T19:24:24.803 回答