我对这个问题感到疯狂,我尝试从以下字符串中提取“拉丁”句子(比原始字符串短):
My Name is Yoann
ホームインサイト最新のインサイト運用チームからの最新のマーケ
ットアップデート、運用アップデートマーケットアップデート市場環境情報に関す
るレポート投資アップデート投資環境情報レポート及び出版物運用戦略運用戦略
ファーストステート・スチュワートアジア・パシフィック、グローバル・エマージング・マーケット、ワールドワイド株式
Hello World
这是正则表达式:
...
//text=My Name is Yoann...
pattern = new RegExp("([A-Za-z]+[\s]?[A-Za-z])+", "g");
results= text.match(pattern);
当我运行它时,我得到:
//results[0]="My"
//results[1]="Name"
//results[2]="is"
//results[3]="Yoann"
//...
单词按“空格”分开。当我尝试http://regexlib.com时(JS客户端引擎)测试员或http://regexpal.com ,结果是:
//results[0]="My Name is Yoann"
//results[1]="Hello World"
所以我不明白我在代码中做错了什么,但我没有得到相同的结果。
感谢您的帮助。
约安
最佳答案
> "foo bar".match(new RegExp("[a-z]\s[a-z]"))
null
> "foo bar".match(new RegExp("[a-z]\\s[a-z]"))
["o b"]
使用 RegExp 构造函数时,请将斜杠加倍。更好的是,使用正则表达式文字,例如
/[A-Z][A-Z\s]*[A-Z]|[A-Z]/gi
关于Javascript - 正则表达式不一致匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18713258/