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
)。