什么是正则表达式模式 "words with numbers in them" 而不是数字本身
What is the Regex pattern "words with numbers in them" but not a number itself
的正则表达式是什么样子的
输入:
Rood 锂离子电池 12 G6
匹配:
“路德”“锂离子电池”“G6”
1。
我试过
\b[\w-]+\b /g
但这也匹配“12”!
2.I 尝试过
/([0-9]+)?[a-zA-Zê]/
但这与 G6 不匹配。
我想要所有单词,即使它们中有数字,但我不希望只有数字匹配。这怎么可能。空格也不应成为匹配项的一部分。
"Rood Li-Ion 12 G6" 应成为 3 串 "Rood","Li-Ion","G6"
您可以使用
(?<!\S)(?!\d+(?!\S))\w+(?:-\w+)*(?!\S)
参见regex demo。它匹配空格或字符串 start/end 之间的字符串,并且仅当此非空格块不是纯数字块时才匹配。
此外,它不会像原始正则表达式那样匹配连字符。
详情
(?<!\S)
- 左空白边界
(?!\d+(?!\S))
- 不允许紧靠右边的一个或多个数字以空格或字符串结尾结尾
\w+(?:-\w+)*
- 一个或多个单词字符后跟 -
零次或多次重复以及一个或多个单词字符
(?!\S)
- 右空白边界
这应该符合您的需要:
\b[\w-]*[a-zA-Z][\w-]*\b
输入: Rood 锂离子电池 12 G6
匹配: “路德”“锂离子电池”“G6”
1。 我试过 \b[\w-]+\b /g
但这也匹配“12”!
2.I 尝试过
/([0-9]+)?[a-zA-Zê]/
但这与 G6 不匹配。
我想要所有单词,即使它们中有数字,但我不希望只有数字匹配。这怎么可能。空格也不应成为匹配项的一部分。
"Rood Li-Ion 12 G6" 应成为 3 串 "Rood","Li-Ion","G6"
您可以使用
(?<!\S)(?!\d+(?!\S))\w+(?:-\w+)*(?!\S)
参见regex demo。它匹配空格或字符串 start/end 之间的字符串,并且仅当此非空格块不是纯数字块时才匹配。
此外,它不会像原始正则表达式那样匹配连字符。
详情
(?<!\S)
- 左空白边界(?!\d+(?!\S))
- 不允许紧靠右边的一个或多个数字以空格或字符串结尾结尾\w+(?:-\w+)*
- 一个或多个单词字符后跟-
零次或多次重复以及一个或多个单词字符(?!\S)
- 右空白边界
这应该符合您的需要:
\b[\w-]*[a-zA-Z][\w-]*\b