正则表达式匹配以"stop"开头的字符串

86 regex

如何创建正则表达式以匹配字符串开头的单词.我们希望stop在字符串的开头匹配,任何东西都可以跟随它.

例如,表达式应匹配:

stop
stop random
stopping
Run Code Online (Sandbox Code Playgroud)

谢谢.

Vin*_*vic 161

如果您希望仅匹配以停止使用开头的行

^stop
Run Code Online (Sandbox Code Playgroud)

如果您希望匹配以单词stop开头后跟空格的行

^stop\s
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望匹配以单词stop开头但后跟空格或任何其他非单词字符的行,您可以使用(您的正则表达式允许)

^stop\W
Run Code Online (Sandbox Code Playgroud)

另一方面,下面的内容匹配大多数正则表达式的字符串开头的单词(在这些样式中\ w匹配\ W的相反)

^\w
Run Code Online (Sandbox Code Playgroud)

如果你的味道没有\ w快捷方式,你可以使用

^[a-zA-Z0-9]+
Run Code Online (Sandbox Code Playgroud)

要小心,这第二个成语只会匹配字母和数字,没有任何符号.

检查你的正则表达式味道手册,了解允许的快捷方式以及它们究竟匹配的内容(以及它们如何处理Unicode.)

  • +1用于概括您的答案.我很想在Stack Overflow上看到更多这样的内容.在我看来,它使它成为更好的学习资源. (20认同)
  • 不要忘记`^stop\b`,它允许任何边界,包括行尾 (2认同)

Mik*_*scu 72

试试这个:

/^stop.*$/
Run Code Online (Sandbox Code Playgroud)

说明:

  • / charachters分隔正则表达式(即它们本身不是正则表达式的一部分)
  • ^表示在行的开头匹配
  • .后跟*表示匹配任何字符(.),任意次数(*)
  • $表示到行尾

如果你想强制执行停止跟随空格,你可以像这样修改RegEx:

/^stop\s+.*$/
Run Code Online (Sandbox Code Playgroud)
  • \ s表示任何空白字符
  • +\ S意味着必须有停止字之后跟随的至少一个空白字符

注意:另请注意,上面的RegEx要求停用词后跟空格!所以它不匹配只包含:停止的行

  • .*$是多余的. (2认同)
  • @Cat Megex:这正是我添加解释的原因。如果您的语言使用其他东西来分隔正则表达式,请将 / 替换为正确的字符 (2认同)

Wax*_*axo 22

如果你想在一个单词停止之后匹配任何东西,不仅在行的开头你可以使用:\bstop.*\b- 单词后跟行

直到字符串结尾的单词

或者如果你想匹配字符串中的单词使用\bstop[a-zA-Z]*- 只有以stop开头的单词

只有以停止开头的单词

或者^stop[a-zA-Z]*仅为单词停止的行的开头 - 仅第一个单词
整行^stop.*- 仅字符串的第一行

如果你想匹配以stop开头的每个字符串,包括换行符,请使用:/^stop.*/s- 以stop开头的多行字符串


Sed*_*inc 16

就像@SharadHolani所说的那样.这与以" 停止 " 开头的每个单词都不匹配

.只有当它出现在" 停止前进 " 这一行的开头时.@Waxo给出了正确答案:

如果你想匹配任何以" stop " 开头并且只包含A到Z字母的单词,那么这个稍微好一些.

\bstop[a-zA-Z]*\b
Run Code Online (Sandbox Code Playgroud)

这将匹配所有

停止(1)

随机停止(2)

停止(3)

停下来(4)

停止(5)

/^stop[a-zA-Z]*/
Run Code Online (Sandbox Code Playgroud)

只会匹配(1)直到(3),但不会(4)和(5)


Ale*_*x B 7

如果你想匹配任何以"停止"开头的东西,包括"停止","停止"和"停止"使用:

^stop
Run Code Online (Sandbox Code Playgroud)

如果你想匹配单词 stop后跟任何内容,如"停止前进","停止此",但不是"停止"而不是"停止"使用:

^stop\W
Run Code Online (Sandbox Code Playgroud)


Mez*_*Mez 6

/stop([a-zA-Z])+/
Run Code Online (Sandbox Code Playgroud)

将匹配任何停止词(停止,停止,停止等)

但是,如果您只想在字符串的开头匹配"停止"

/^stop/
Run Code Online (Sandbox Code Playgroud)

会做:D

  • 这将匹配"不要停止前进" (2认同)