Regex 仅匹配以某个字母开头,然后包含5个或更多非空白字符的单词

Regex 仅匹配以某个字母开头,然后包含5个或更多非空白字符的单词,regex,Regex,我试过跟着正则表达式 (?i)(^t | ^d | ^i |)\S{5}.-无论起始字符是什么,它都匹配任何字符串 (?i)^(t | d | i |)\S{5}.-仅匹配以字符“t”开头的字符 (?i)[tdi]\S{5}.*-这看起来不错,但无法使用^。如果我在(?i)[^tdi]\S{5}.*.中使用^,那么它将匹配除以t开头之外的所有内容。我想匹配txxxxx但不匹配xtxxxx,而I和d的情况也是如此 实现它的正确正则表达式是什么 首先,字符串必须以指定的其中一个字符开头,然后必须

我试过跟着正则表达式

  • (?i)(^t | ^d | ^i |)\S{5}.
    -无论起始字符是什么,它都匹配任何字符串
  • (?i)^(t | d | i |)\S{5}.
    -仅匹配以字符“t”开头的字符
  • (?i)[tdi]\S{5}.*
    -这看起来不错,但无法使用^。如果我在
    (?i)[^tdi]\S{5}.*.
    中使用
    ^
    ,那么它将匹配除以
    t
    开头之外的所有内容。我想匹配
    txxxxx
    但不匹配
    xtxxxx
    ,而
    I
    d
    的情况也是如此
实现它的正确正则表达式是什么


首先,字符串必须以指定的其中一个字符开头,然后必须跟在至少5个字符(无空格)的字符后面,然后它后面可以有任何内容,即
txxxxx.domain.local
dxxx.domain.local
但同时它不应与
xtxxxx.domain.local
xdxxxx.domain.local

通常,如果您需要匹配任何由字母、数字或下划线组成的单词,可以使用以特定字母开头的单词

(?i)\b[tdi]\w*
(?i)(?<!\S)[tdi]\S{5,}
它将在单词边界(
\b
)匹配
t
d
d
I
I
,然后匹配任何0个或更多的字母、数字或下划线

你可以用

(?i)\b[tdi]\w*
(?i)(?<!\S)[tdi]\S{5,}
(?i)(?
见

  • (?i)
    -启用不区分大小写的修饰符
  • (?-空格应该在匹配之前出现
  • [tdi]
    -单词开头的三个字母之一
  • \S{5,}
    -五个或更多非空白字符

你是指以
a
b
c
开头的整串字符串还是字符串中的单词?什么“单词”?
a--+=
是单词?注意,在前两个示例中,有一个无关的
,最后一个在组中,空的替代项使组成为可选的,
(^t^d^i|)
((?:^t^^d^^i)
。你的意思是你只想要
(?i)^[tdi]\S{5}.
?但是你写了什么“这看起来不错,但不能使用
^
,因为这只是求反。”?如果你想匹配以字符类中列出的其中一个开头的单词,你可以在它之外添加
^
,以断言字符串
^[tdi]{5}的开头(?!\S)
我认为第一个模式与第二个模式匹配。你能提供一个你正在寻找的“before”和“after”的例子吗?你的意思是你只想要(?I)^[tdi]\S{5}...*?-是的,如果这样做有效,但它不匹配。它只匹配以char“t”开头的字符串。但是你写了什么“这看起来很好,但不能使用^,因为这只是否定。”?如果我使用^inside(?i)[^tdi]\S{5}.*那么它匹配除以“t”开头的以外的所有内容。我想匹配txxxxx,但不是xtxxxx,i和d的情况也是如此。这说明问题了吗?不多。那么,你想在单词边界处匹配吗?试试
(?i)\b[tdi]\w*