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