正则表达式在一个完整的单词中找到两个单词
RegEx to find two words within one whole word
非常简单,但我无法让它工作。
我想在一个连续的字符串(或一个完整的单词)中找到两个单词
例子
只在整个字符串中找到 "student" 和 "name" 这两个词(不使用空格或其他 words/chars 分隔)
所以在这些中找到它...
"studentname"
"studentpreferredname"
"studentgivennames"
"student_name"
"student(^&(&(&(&&^&^&^&^&^%&^%name"
但不在这些...
"student name"
"student [multiple spaces] name"
"student is their name"
"the student's name is"
"A long time ago I wanted this student to have a similar name
to"
我唯一能做的就是正则表达式:
student.*name
但这会带来上述情况,其中包含各种字符和单词。
谢谢
更新
请参阅下面的答案。
这非常有效。
\bstudent\S*name\b
如果我对你的问题的理解正确,你正在尝试匹配 student
和 name
之间没有 space 个字符。
如果是这样,请尝试 student[^ ]*name
。 [^ ]
匹配一个不是 space 的字符。
正则表达式中的点 /./
是除换行符之外的任何字符,这就是它对您不起作用的原因。
您可能需要使用 非空白 字符 /\S/
,它是 /[^ \t\r\n\f]/
的简化形式。最后,您的正则表达式应如下所示:
/student\S*name/
您可以在 documentation 的 Ruby 中阅读有关 正则表达式的更多信息。
这为我解决了(来自 here)。
\bstudent\S*name\b
非常简单,但我无法让它工作。
我想在一个连续的字符串(或一个完整的单词)中找到两个单词
例子
只在整个字符串中找到 "student" 和 "name" 这两个词(不使用空格或其他 words/chars 分隔)
所以在这些中找到它...
"studentname"
"studentpreferredname"
"studentgivennames"
"student_name"
"student(^&(&(&(&&^&^&^&^&^%&^%name"
但不在这些...
"student name"
"student [multiple spaces] name"
"student is their name"
"the student's name is"
"A long time ago I wanted this student to have a similar name to"
我唯一能做的就是正则表达式:
student.*name
但这会带来上述情况,其中包含各种字符和单词。
谢谢
更新
请参阅下面的答案。
这非常有效。
\bstudent\S*name\b
如果我对你的问题的理解正确,你正在尝试匹配 student
和 name
之间没有 space 个字符。
如果是这样,请尝试 student[^ ]*name
。 [^ ]
匹配一个不是 space 的字符。
正则表达式中的点 /./
是除换行符之外的任何字符,这就是它对您不起作用的原因。
您可能需要使用 非空白 字符 /\S/
,它是 /[^ \t\r\n\f]/
的简化形式。最后,您的正则表达式应如下所示:
/student\S*name/
您可以在 documentation 的 Ruby 中阅读有关 正则表达式的更多信息。
这为我解决了(来自 here)。
\bstudent\S*name\b