Javascript 使用字符串方法查找文本中的标点符号
如何确定标点符号(?;)或“何时使用正则表达式:Javascript 使用字符串方法查找文本中的标点符号,javascript,regex,string,Javascript,Regex,String,如何确定标点符号(?;)或“何时使用正则表达式: var text = corpus.split(/[(?!;.)<]/g); var text=corpus.split(/[(?!;)使用正则表达式: var text = corpus.split(/[(?!;.)<]/g); var text=corpus.split(/[(?!;)您可以从RegExp开始,根据每个字符对其进行加权,并从本质上比较ascii代码。split是另一种方法(就在上面) 正则表达式解 functi
var text = corpus.split(/[(?!;.)<]/g);
var text=corpus.split(/[(?!;)使用正则表达式:
var text = corpus.split(/[(?!;.)<]/g);
var text=corpus.split(/[(?!;)您可以从RegExp开始,根据每个字符对其进行加权,并从本质上比较ascii代码。split是另一种方法(就在上面)
正则表达式解
function getTextUpToPunc( text ) {
const regExp = /^.+(\!|\?|\.)/mg;
for (let match; (match = regExp.exec( text )) !== null;) {
console.log(match);
}
}
getTextUpToPunc(
"what a chunky funky monkey! this is really someting else"
)
这里的关键优势在于,您不需要循环整个字符串,也不需要通过执行regExp.exec(text)
来控制迭代
先前发布的split
解决方案可以工作,但split将在整个字符串上循环。通常这不会是一个问题,但是如果您的字符串有成千上万个字符,并且您经常执行此操作,那么考虑性能是有意义的
如果此函数将多次运行,那么一个小的性能改进就是记忆RegExp创建:
const regExp = /^.+(\!|\?|\.)/mg;
像这样的事情
function getTextUpToPunc( text ) {
if( !this._regExp ) this._regExp = /^.+(\!|\?|\.)/mg;;
const regExp = this._regExp;
for (let match; (match = regExp.exec( text )) !== null;) {
console.log(match);
}
}
您可以从RegExp开始,根据每个字符对其进行加权,并从本质上比较ascii代码。拆分是另一种方法(刚刚在上面发布)
正则表达式解
function getTextUpToPunc( text ) {
const regExp = /^.+(\!|\?|\.)/mg;
for (let match; (match = regExp.exec( text )) !== null;) {
console.log(match);
}
}
getTextUpToPunc(
"what a chunky funky monkey! this is really someting else"
)
这里的关键优势在于,您不需要循环整个字符串,也不需要通过执行regExp.exec(text)
来控制迭代
先前发布的split
解决方案可以工作,但split将在整个字符串上循环。通常这不会是一个问题,但是如果您的字符串有成千上万个字符,并且您经常执行此操作,那么考虑性能是有意义的
如果此函数将多次运行,那么一个小的性能改进就是记忆RegExp创建:
const regExp = /^.+(\!|\?|\.)/mg;
像这样的事情
function getTextUpToPunc( text ) {
if( !this._regExp ) this._regExp = /^.+(\!|\?|\.)/mg;;
const regExp = this._regExp;
for (let match; (match = regExp.exec( text )) !== null;) {
console.log(match);
}
}
谢谢,函数运行得很好。我得到了我想要的结果。:-)不幸的是,我不能给你评分,因为我是新来的,我没有足够的分数给某人评分。没问题,谢谢你的解决方案评分,希望这对你有用,干杯!谢谢,函数运行得很好。我得到了我想要的结果。:-)不幸的是,我不能给你评分,因为我是新来的,我没有足够的分数给某人评分。没问题,谢谢你的解决方案,马克,希望这对你有用,干杯!