Javascript 正则表达式匹配帮助:won';在每个外观上都不匹配

Javascript 正则表达式匹配帮助:won';在每个外观上都不匹配,javascript,regex,regex-lookarounds,Javascript,Regex,Regex Lookarounds,我需要编写一个小的正则表达式匹配器,它将以 [a-zA-Z]+([a-zA-Z0-9]+)? 如果我使用上面的正则表达式,它确实匹配所需的部分,但也会匹配到4_abc的abc部分,这是不需要的。我试图用以下方法排除它: (?:[^a-zA-Z0-9|]|^)([a-zA-Z]+([a-zA-Z0-9]+)(?:[^a-zA-Z0-9|]|$) 问题是开始和结束时的“不”比赛并不像我希望的那样有效。如果我在示例中使用它们 a_d Dd_da 4_d d_4 他们会阻止匹配第二个Dd_da,因为第一

我需要编写一个小的正则表达式匹配器,它将以

[a-zA-Z]+([a-zA-Z0-9]+)?

如果我使用上面的正则表达式,它确实匹配所需的部分,但也会匹配到
4_abc
abc
部分,这是不需要的。我试图用以下方法排除它:

(?:[^a-zA-Z0-9|]|^)([a-zA-Z]+([a-zA-Z0-9]+)(?:[^a-zA-Z0-9|]|$)

问题是开始和结束时的“不”比赛并不像我希望的那样有效。如果我在示例中使用它们

a_d Dd_da 4_d d_4

他们会阻止匹配第二个Dd_da,因为第一个匹配中使用了空格。遗憾的是,我不能使用lookarounds,因为我使用的是JS

因此,输入:
a_d Dd_da 4_d d_4

应匹配:
a\u d
Dd\u da
d\u 4

但是匹配:
a\u d
(末尾有一个空格)

是否有其他方法来匹配所需的部分,或者不使用“锚”匹配


非常感谢您的帮助。

您可以利用
\b


\b
匹配(零宽度)点,其中前一个字符或后一个字符是字母、数字或下划线,但不是两者都是。如果第一个/最后一个字符是字母、数字或下划线,则它还与字符串的开头/结尾匹配

您可以使用
\b


\b
匹配(零宽度)点,其中前一个字符或后一个字符是字母、数字或下划线,但不是两者都是。如果第一个/最后一个字符是字母、数字或下划线,则它还与字符串的开头/结尾匹配

\b
呢@特林科特成功了!!我以前忽略了这一点,因为我认为
可能被算作“单词的一部分”,但这解决了问题!你能把这个作为答案转寄吗?那
\b
呢@特林科特成功了!!我以前忽略了这一点,因为我认为
可能被算作“单词的一部分”,但这解决了问题!你能把这个作为答复转寄吗?