我的正则表达式知识非常有限,但是我正在尝试编写/查找一个将捕获文档中以下字符串类型的表达式:
符合条件:
不匹配:
这样的表达可能吗?基本上,它应该找到任何包含字母和数字的字符串,而不管该字符串是短划线还是下划线。我可以使用以下两个正则表达式找到前两个:
但是寻找可能的破折号和连字符会使它变得更加复杂...
感谢您的任何帮助,您可以提供!:)
更多信息:
我在:([AZ | az] [0-9] +-* _ * \ w +)上取得了一些进展,但是它不能捕获带有多个连字符的字符串。
我有一个包含很多文本字符串和数字字符串的文档,我不想捕获它们。我想要的是任何产品代码,可以是任何长度的字符串,带有或不带有连字符和下划线,但始终包含至少一位数字和至少一个字母。
您可以在不区分大小写的模式下使用以下表达式:
\b((?:[a-z]+\S*\d+|\d\S*[a-z]+)[a-z\d_-]*)\b
说明:
\b # Assert position at a word boundary
( # Beginning of capturing group 1
(?: # Beginning of the non-capturing group
[a-z]+\S*\d+ # Match letters followed by numbers
| # OR
\d+\S*[a-z]+ # Match numbers followed by letters
) # End of the group
[a-z\d_-]* # Match letter, digit, '_', or '-' 0 or more times
) # End of capturing group 1
\b # Assert position at a word boundary
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句