Javascript 匹配所有字符直到一个单词边界
基于此,我尝试匹配所有字符,直到一个单词边界 例如-在以下字符串中匹配Javascript 匹配所有字符直到一个单词边界,javascript,regex,Javascript,Regex,基于此,我尝试匹配所有字符,直到一个单词边界 例如-在以下字符串中匹配apple: apple< 它应该查找一个“a”,然后为任何非单词边界的字符获取一个或多个匹配项。因此,我希望它在之前停止,您必须将单词边界作为正则表达式的一部分,如下所示: /[A-Za-z]+\b/ 您还可以使用: \w+\b 虽然这将包括下划线作为单词的一部分,但单词边界(\b)不是字符,而是字母序列和任何非字母字符之间的空字符串。此外,由于JavaScript中仍然缺乏Unicode支持,“字母”仅表示A
apple
:
apple<
它应该查找一个“a”,然后为任何非单词边界的字符获取一个或多个匹配项。因此,我希望它在
之前停止,您必须将单词边界作为正则表达式的一部分,如下所示:
/[A-Za-z]+\b/
您还可以使用:
\w+\b
虽然这将包括下划线作为单词的一部分,但单词边界(\b
)不是字符,而是字母序列和任何非字母字符之间的空字符串。此外,由于JavaScript中仍然缺乏Unicode支持,“字母”仅表示ASCII字母
正因为如此,你
- 通常不应该使用
\b
,除非您的数据是某种不可能包含Unicode的计算机语言
- 无法将量词应用于
\b
(空字符串乘以10仍然是一个空字符串)
- 无法否定
\b
(它不是字符集,因此没有补码)
- 不能将
\b
包含在字符集中(方括号中),因为它不是字符或字符集
由于\b
实际上不会向匹配中添加任何字符,因此可以安全地将其附加到正则表达式中:
/.+?\b/
将匹配所有字符,直到第一个单词边界。事实上,这是一个超集:
/\w+/
这可能就是你想要的,因为你只对单词感兴趣,而不是中间的东西。如果这个问题的改写是准确的:匹配所有以“a”开头的单词,那么你可能已经开始搜索现有的SO答案,如此。从中提取出来,您可以使用字符类来表示单词\w
,并通过包含前面的单词边界\b
匹配来防止匹配部分单词,包括“a”,例如“baggage”:/\ba\w+/gi
var-input=[”应用程序或带有a的单词var-re=/a\w+/i;
这看起来不起作用。OP要求从“a”到单词末尾的所有内容。这只是匹配以“a”开头的单词"@redbmk因此提出了开始回答的警告。所有的例子都是以“a”开头的单词。但如果不是这样,OP会想要第一次出现,第二次,第三次,等等吗?:)这很令人困惑。你在这里发布的答案是对另一个问题的一个很好的回答。你甚至包括了一个指向另一个问题的链接,但这个问题没有“没有使用单词边界的答案,也没有被接受的答案。为什么不把这个答案贴在那个问题上呢?@redbmk我不确定什么是令人困惑的。这个问题没有明确说明OP需要部分单词匹配,而且正如前面所说的,提供的所有示例都是以“a”开头的单词。这完全是选项。”如果需要或不需要的话,al会包括边界。为什么你不反复强调其他提供的答案,完全掩盖了少数几个规定的要求之一:应该寻找“a”。到目前为止,没有一个包含这一点。其他答案忽略了“a”这一点很好.不过,你的回答将是对你提到的另一个问题的一个很好的补充。
/\w+/