Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 单词和数字之间没有空格的正则表达式是什么_Regex - Fatal编程技术网

Regex 单词和数字之间没有空格的正则表达式是什么

Regex 单词和数字之间没有空格的正则表达式是什么,regex,Regex,我需要帮助建立一个正则表达式来匹配 words2005 more words2005 more words 2005here 但不是 words 2005 more words 2005 more words 2005 here 基本上,我在寻找人们在单词和数字之间没有空格的例子 例如,我在文本中搜索诸如“我1990年出生在香港附近”之类的短语。有时人们把东西打错了,结果是我1990年出生在香港附近,或者我1990年出生在香港附近。我只想找到这些实例,以便修复它们。只需匹配一个字母后跟一个数

我需要帮助建立一个正则表达式来匹配

words2005
more words2005
more words 2005here
但不是

words 2005
more words 2005
more words 2005 here
基本上,我在寻找人们在单词和数字之间没有空格的例子


例如,我在文本中搜索诸如“我1990年出生在香港附近”之类的短语。有时人们把东西打错了,结果是
我1990年出生在香港附近
,或者
我1990年出生在香港附近
。我只想找到这些实例,以便修复它们。

只需匹配一个字母后跟一个数字,或一个数字后跟一个字母:

[a-zA-Z]\d|\d[a-zA-Z]

只需匹配字母后接数字,或数字后接字母:

[a-zA-Z]\d|\d[a-zA-Z]

要获取包含字母和数字的任何单词,您可以使用:

[A-Za-z]+\d+|\d+[A-Za-z]+

备选方案:

如果要求匹配包含至少一个字母和至少一个数字的字母数字字符串,那么这将是一个更好的正则表达式:

(?:[A-Za-z]+\d+|\d+[A-Za-z]+)[A-Za-z\d]*


要获取包含字母和数字的任何单词,您可以使用:

[A-Za-z]+\d+|\d+[A-Za-z]+

备选方案:

如果要求匹配包含至少一个字母和至少一个数字的字母数字字符串,那么这将是一个更好的正则表达式:

(?:[A-Za-z]+\d+|\d+[A-Za-z]+)[A-Za-z\d]*



只是不要在正则表达式中添加空格,否则它将与空格不匹配。因此,匹配项应该包含一些字母和数字,如下所示:?您可能应该对您要查找的内容添加更多解释。可能会定义一些规则,并包含更多的输入和输出示例。基于我有限的理解,试试这个:@degant我希望你能把你的答案放回去,因为我喜欢你的方法,我喜欢你链接到regex101,这是一个很好的答案。谢谢。当然,请注意,它将完全匹配后跟数字的字符,反之亦然。但是如果是字符,然后是数字,交替(例如
9a9
),那么它只能部分匹配。如果您希望以不同的方式执行此操作,请更新规则不要在正则表达式中放入空格,否则它将与空格不匹配。因此,匹配项应包含一些字母和数字,如以下所示:?您可能应该添加更多关于您要查找的内容的解释。可能会定义一些规则,并包含更多的输入和输出示例。基于我有限的理解,试试这个:@degant我希望你能把你的答案放回去,因为我喜欢你的方法,我喜欢你链接到regex101,这是一个很好的答案。谢谢。当然,请注意,它将完全匹配后跟数字的字符,反之亦然。但是如果是字符,然后是数字,交替(例如
9a9
),那么它只能部分匹配。如果你想让它以另一种方式工作,请更新规则你的简单、正确的答案使我意识到我的测试条件是错误的,你能在这里匹配更多单词2005吗。谢谢我已经更新了答案。它仍然非常简单,只需匹配任意一个条件。如果您的“单词”不只是A-Z,您可以使用它来查找所有之前/之后没有空格的数字:
[^]\d+\d+[^]
.LOL。感谢您的回答@Barmar。我想得太多了,试图排除空格,匹配字母数字等等。。。你的回答完全符合我的要求。谢谢。更正我之前的评论:
[^\d]\d+\d+[^\d]
(在前/后术语中添加了
\d
)。你简单、正确的回答让我意识到我的测试条件是错误的,你能在这里匹配更多2005年的单词吗。谢谢我已经更新了答案。它仍然非常简单,只需匹配任意一个条件。如果您的“单词”不只是A-Z,您可以使用它来查找所有之前/之后没有空格的数字:
[^]\d+\d+[^]
.LOL。感谢您的回答@Barmar。我想得太多了,试图排除空格,匹配字母数字等等。。。你的回答完全符合我的要求。谢谢。更正我之前的评论:
[^\d]\d+\d+[^\d]
(在术语前后添加了
\d
)。