【发布时间】:2016-11-16 05:41:47
【问题描述】:
我想计算包含特定 ID(例如 *AUY)的特定行中的单词数。到目前为止,我已经尝试使用下面的正则表达式来查找该行,但它不考虑开头的“*”
^ *(.*\b(?:\\*AUY)\b.*) *$
我有下面的测试字符串
*AUY: today is holiday so Peter and Mary do not need to go to work .
%mor: n|today cop|be&3s n|holiday conj|so n:prop|Peter conj|and n:prop|Mary v|do neg|not v|need inf|to v|go prep|to n|work .
%snd: <00:00:00><00:07:37>
%AUY: ok_pfp (0.40) er today is holiday errfr ::: so er Peter and Mary {is} ~ er do not need errfr ::: to go to work . errfr :;:a |
结果应该只是第一个字符串,但它返回结果匹配中的第一个和最后一个字符串。 看到这个Rubular
【问题讨论】:
-
你能把你的问题说得更清楚吗?你想从你提供的测试字符串中提取什么?
-
你可以做
string.split(' ').length -
您的脚本现在只是(尝试)匹配字符串,但不计算单词。匹配字符串所需的只是
^\*AUY.*。这就是你要找的全部吗?你用什么代码counting字符串中的单词数? -
这个正则表达式有两个问题: (1)
\b匹配单词边界,但字符*不是单词字符,所以它之前的边界不匹配; (2) 匹配星号,使用\*(\\*匹配零个或多个反斜杠)
标签: javascript regex