RegEx在一个完整的单词中找到两个单词

时间:2016-03-17 06:49:56

标签: regex full-text-search

非常简单,但我无法让它发挥作用。

我想在连续的字符串(或一个完整的单词)中找到两个单词

示例

找到我的两个词 - "学生"和"名称"只在整个字符串中(与空格或其他单词/字符不分开)

所以在这些中找到它......

  

" studentname"

     

" studentpreferredname"

     

" studentgivennames"

     

" student_name"

     

"学生( ^及(及(及(&安培;&安培; ^ &安培; ^ &安培; ^ &安培; ^ &安培; ^%安培; ^%名称"

但不是在这些......

  

" 学生 名称"

     

" 学生 [多个空格] 名称"

     

" 学生是他们的名称"

     

" 学生名称是"

     

"很久以前我希望这个学生有一个类似的名称   到"

我能做的唯一工作就是正则表达式:

  

学生*名称

但是,这会带来上面的案例,其间有各种各样的字符和单词。

谢谢

更新

见下面的答案。

这很有效。

  

\ bstudent \ S *名\ B'/ P>

3 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,那么您正在尝试匹配studentname之间没有空格字符。

如果是这种情况,请尝试student[^ ]*name[^ ]匹配不是空格的字符。

答案 1 :(得分:0)

正则表达式/./中的一个点是除换行符之外的任何字符,这就是为什么它不适合你。

您可能需要使用非空白字符/\S/,这是/[^ \t\r\n\f]/的简化。最后,你的正则表达式应如下所示:

/student\S*name/

您可以在documentation中详细了解Ruby中的正则表达式

答案 2 :(得分:0)

这为我解决了这个问题(来自here)。

  

\ bstudent \ S *名\ B'/ P>