正则表达式:如何将特定单词与开头或结尾中的空格和附加字母匹配?

Regular expression : How to match a specific word with having spaces and with an additional letter in the starting or ending?

提问人:Mehta Harshit 提问时间:11/11/2023 最后编辑:Nigel RenMehta Harshit 更新时间:11/11/2023 访问量:54

问:

我试图在 php 中使用正则表达式做一些相当简单的事情

我想做的是匹配字符串中的单词,无论同一字符在哪里。如果它位于字符串的开头,则之前不需要空格 - 如果它在末尾,也不要搜索空格。

例:

String : "tes[email protected]"
Word Search: "christest"

我希望输出与字符串中的单词搜索匹配

我尝试了以下模式,但它仍然无法按预期 100% 工作

[^\s]+christest

我在这里试过:

https://regex101.com/r/0BGZmY/1

表达式正则表达式环视

评论

0赞 nice_dev 11/11/2023
如何进行逻辑匹配?christesttest.chris
0赞 Mehta Harshit 11/11/2023
@nice_dev,Word 搜索基本上是用户名,搜索字符串是电子邮件,因此想要匹配并检查我得到的名称是否与电子邮件字符串正确。所以Chris是名字,test是姓氏,这里的电子邮件是test.chris,所以你能帮我吗?
0赞 nice_dev 11/11/2023
因此,如果是名字并且是姓氏,则可以单独搜索它们。因为电子邮件也可能像christtest[email protected]
0赞 InSync 11/11/2023
"有些人在遇到问题时会想“我知道,我会使用正则表达式。现在他们有两个问题。"

答:

1赞 Carsten Massmann 11/11/2023 #1

如果你正在寻找这两个单词的存在,以及字符串中的任何位置,你可以使用一个带有两个预示的正则表达式:christest

/(?=.*chris)(?=.*test).*/g

请参阅此处: https://regex101.com/r/milVww/1

如果其中一个目标词的存在对你来说已经足够了,你可以做:

/(?=.*(chris|test)).*/g

https://regex101.com/r/l8JZrH/1

评论

0赞 Mehta Harshit 11/11/2023
好的,不能像电子邮件中的Christest那样用单个单词搜索,并且模式给出布尔值,因为电子邮件有一些字母,这些字母在模式中存在?