【发布时间】:2023-10-15 16:02:01
【问题描述】:
我是 Ruby、Regex 和 * 的新手。 xD 这是我的问题:
我想使用正则表达式来提取由具有标准 ASCII 字符的连续单词组成的短语,并将其与越南文本中的其他单词区分开来。
换句话说,只有 \w 个字符的短语,例如:
Mình rất thích con Sharp này (mặc dù chưa xài bao h nhưng chỉ nghe các pác nói mình đã thấy phê lòi mắt rồi)。 Các bạn cho mình hỏi 1 câu (các bạn đừng chê mình ngu nhé tội nghiệp mình) : cái máy này đem sang Anh dùng mạng Vodafone là dùng vô tư ah`? Nếu dùng được bên Anh mà không phải chọc ngoáy j thì mình mua một cái
不要关心它的含义,我想要实现的是一个包含 2 对结果的哈希数组:value => 提取的短语的值,starting_position => 第一个字符的位置。
按照关于的例子,应该是这样的: [{:value=>"con Sharp", :starting_position => 16}, {:value=>"bao h", :starting_position => blah blah}...]
这意味着所有包含 \W 字符的单词,例如“mình”、“rất”、“thích”等都会被拒绝。
在 rubular.com 上为 Ruby 1.9.2 尝试使用此正则表达式的上述示例:
\b[\w|\s]+\b
我几乎得到了我想要的短语(只有空格的短语除外),但它似乎不适用于我的 Ruby,它也是 1.9.2p290,使用 Win 7 64 位。
任何想法都将受到高度赞赏。提前谢谢你。
【问题讨论】: