如何创建以换行符结尾的正则表达式?

时间:2019-02-24 18:28:32

标签: regex ruby

我有(大量)输入,这些输入是句子/项目符号列表,如下所示:

Broker and broker´s fees: 不適合

Specific purpose or use for the present acquisition or disposal: 因應內部管理需要,調整投資架構

Other issues to be disclosed: 無

为了“翻译”中文文本,我想以正则表达式的方式创建对象,以便以后可以根据其内容对第二个捕获的组进行变换。

我认为类似以下的方法会起作用:

Specific_purpose = /(Specific purpose or use for the present acquisition or disposal: )([.]+)(\n)/
Other_issues = /(Other issues to be disclosed: )([.]+)(\n)/

即此正则表达式应由捕获的组1(英文标题),捕获的组2(中文部分)和捕获的组3,即表示对象结束位置的新行组成。

仍然,代码不起作用,我什至无法让Ruby在输入中找到所需的对象。例如,如果我添加:

if input.include? Specific_purpose.to_s
    puts "Yes, I found such bullet "
else
    puts "No, there is no such bullet"
end

无论我如何重写正则表达式,我都会不断收到“不,没有这样的子弹”。

我在这里做错什么了吗?如何创建一个匹配所有行的正则表达式,直到换行?

1 个答案:

答案 0 :(得分:0)

由于您的行包含一个冒号,冒号也充当英语和中文文本的分隔符,因此您可以使用此正则表达式捕获第1组中的英语,并使用第2组中的中文来捕获文本。尝试使用此正则表达式,

(.+):\s+(.+)

Demo

让我知道您是否遇到任何问题。