正则expression式匹配以“stop”开始的string
如何创build正则expression式来匹配string开头的单词。 我们正在寻找匹配stop在一个string的开始,任何事情都可以遵循它。 
例如expression式应该匹配:
 stop stop random stopping 
谢谢。
如果您只希望匹配从停止使用开始的行
 ^stop 
如果您希望匹配以单词stop和空格开头的行
 ^stop\s 
或者,如果您希望匹配以单词stop开头的行,但后跟空格或任何其他非单词字符(您的正则expression式允许)
 ^stop\W 
另一方面,在大多数正则expression式风格(在这些风格\ w匹配\ w的相反)的string的开头,
 ^\w 
如果你的味道没有\ w快捷方式,你可以使用
 ^[a-zA-Z0-9]+ 
要小心,这第二个成语只会匹配字母和数字,没有任何符号。
检查您的正则expression式风味手册知道什么快捷方式是允许的,他们究竟是什么匹配(以及他们如何处理Unicode。)
尝试这个:
 /^stop.*$/ 
说明:
- / charachters分隔正则expression式(即它们本身不是正则expression式的一部分)
- ^表示匹配在行首
- 。 后面跟*表示匹配任何字符(。),任意次数(*)
- $表示行结束
如果你想强制停止后面跟着一个空格,你可以像这样修改RegEx:
 /^stop\s+.*$/ 
- \ s表示任何空格字符
- +跟在\的意思是至less有一个空格字符跟在停用词之后
注意:请注意,上面的RegEx要求停用词后面跟一个空格! 所以它不会匹配只包含stop的行
 如果你想匹配任何字后停止,不仅可以在行的开始,你可以使用: \bstop.*\b – 单词后跟行 
  
 
 或者,如果要匹配string中的单词use \bstop[a-zA-Z]* – 仅限以停止开始的单词 
  
 
 或停止^stop[a-zA-Z]*的行的开始仅用于单词 – 仅用于第一个单词 
 整行^stop.* – 仅string的第一行 
 如果你想匹配每一个string停止包括换行符使用:/ /^stop.*/s stop.*/ /^stop.*/s – 多行string开始停止 
如果要匹配任何以“stop”开头的内容,包括“stop”,“stop”和“stopping”,请使用:
 ^stop 
如果你想匹配stop这个词后跟“停止”,“停止”,但不是“停止”,而不是“停止”
 ^stop\W 
 /stop([a-zA-Z])+/ 
将匹配任何停用词(停止,停止,停止等)
但是,如果您只想匹配string开始处的“停止”
 /^stop/ 
会做:D
我build议不要用简单的正则expression式来解决这个问题。 有太多词是其他不相关词的子串,你可能会疯狂地试图超越已经提供的简单解决scheme。
您至less需要一个天真的词干algorithm(尝试Porter词干程序;大多数语言中都有可用的免费代码)来首先处理文本。 保留这个处理文本和预处理文本在两个单独的空间分割数组。 确保每个非字母字符在这个数组中也有自己的索引。 无论您要过滤的是什么单词,都可以阻止它们。
下一步将是find与您的“停止”字词列表匹配的数组索引。 从未处理的数组中删除这些数据,然后重新join空格。
这只是稍微复杂一些,但将是一个更可靠的方法。 如果您对更多的面向NLP的方法的价值有任何疑问,您可能需要对错误进行一些研究。