小编mrz*_*asa的帖子

正则表达式匹配两个{}之间的所有内容

我在这里看到了不同的答案,但不幸的是,这些答案都不适合我的情况.所以我希望你不介意.

所以我需要匹配两个大括号{}之间的所有内容,除了匹配以@开头且没有这些大括号的情况,例如:

  1. "这是一个超级文本{ match_this }"
  2. "{ match_this }"
  3. "这是另一个例子@ {deal_with_it}"

这是我的测试字符串,1,2,3有效,而最后一个不应该是:

  1   {eww}
  2   r23r23{fetwe}
  3   #{d2dded}
  4   @{d2dded}
Run Code Online (Sandbox Code Playgroud)

我正在尝试:

(?<=[^@]\{)[^\}]*(?=\})
Run Code Online (Sandbox Code Playgroud)

然后只有第2和第3个选项匹配(没有第一个) https://regex101.com/r/qRInUf/2/

然后我在尝试:

\{(.*?)\} or [^@]\{(.*?)\}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都无法匹配1,2,3值 https://regex101.com/r/uYRtLD/1

在此先感谢您的任何建议.

编辑:这是为java.

java regex regex-negation regex-group regex-lookarounds

4
推荐指数
1
解决办法
125
查看次数

使用正则表达式在 Notepad++ 中用引号包围字符串

我在记事本++中有以下文本行

Type, Layer, Env, key, action, timestamp, performedBy, desc, 
Run Code Online (Sandbox Code Playgroud)

我想把它转换成

'Type', 'Layer', 'Env', 'key', 'action', 'timestamp', 'performedBy', 'desc', 
Run Code Online (Sandbox Code Playgroud)

我写在 find [a-zA-Z]*,它给了我每个逗号分隔的字符串,我应该在 replace 中输入什么来让它们用引号括起来?

regex notepad++

4
推荐指数
1
解决办法
3409
查看次数

参数错误提供了零个位置。无法使用载波Ruby on Rails为image_tag构建URI

使用image_tag时,提供的Nil位置出现参数错误。如何使image_tag仅在存在相应图像时才显示的位置为可选?这是与Ruby on Rails 5一起使用的。

这是我当前的显示页面视图:

<p id="notice"><%= notice %></p>

<%= image_tag @restaurant.image_url %>

<p>
  <strong>Name:</strong>
  <%= @restaurant.name %>
</p>

<p>
  <strong>Address:</strong>
  <%= @restaurant.address %>
</p>

<p>
  <strong>Phone:</strong>
  <%= @restaurant.phone %>
</p>

<p>
  <strong>Website:</strong>
  <%= @restaurant.website %>
</p>

<%= link_to 'Edit', edit_restaurant_path(@restaurant), class: 'btn btn-link' %> |
<%= link_to 'Back', restaurants_path, class: 'btn btn-link' %>
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-5

4
推荐指数
1
解决办法
2223
查看次数

从字符串中删除所有标记

我有一个由用户输入的字符串.他们可以添加链接的链接,但我们只希望某些用户能够点击链接.我想要做的是用它里面的文本替换任何标签.如果有一个链接但是当有多个链接时无法弄清楚如何做,我已设法做到了.

这是我目前拥有的,并尝试了许多变化来达到这个目的:

url_text = text.split("<a").last.split("</a>").first.split('>').last
text.gsub! /<a.+a>/m, url_text
Run Code Online (Sandbox Code Playgroud)

但它仅适用于标记的第一个实例.

我收到的字符串如下所示:

text = <div>blah blah blah.<br /><br /></div>\r\n<div><a href=\"http://www.google.com\">Google</a><br />Another link: <br /> <a href=\"http://www.test.com\">Test Link</a><br /><br /></div>"
Run Code Online (Sandbox Code Playgroud)

我想要它说:等等等等等等.谷歌另一个链接:测试链接

任何帮助将不胜感激.如果您需要更多代码或信息,请与我们联系.

ruby regex string ruby-on-rails

4
推荐指数
1
解决办法
118
查看次数

红宝石中有没有像object.in(array)这样的东西?

所以写这个的标准方法似乎是array.include?(object)。但是,与object.in(array)相比,我发现很难快速阅读和理解。红宝石中有这样的东西吗?

我刚刚再次遇到的示例是(user_role是一个字符串,而allowed_user_roles是一个字符串数组):

allowed_user_roles.include?(user_role)
Run Code Online (Sandbox Code Playgroud)

我知道它可能是个人喜好,但是我发现它很容易阅读和理解。

user_role.in(allowed_user_roles)
Run Code Online (Sandbox Code Playgroud)

ruby arrays

4
推荐指数
1
解决办法
94
查看次数

Ruby仅执行第一行?

我正在编写一个ruby脚本,发现了这种奇怪的行为。

使用 ruby 2.4.2 [x86_64-darwin16]

基本上,我试图回显两个分开的消息,在index.rb文件中我得到了:

exec("echo 'teste'")
exec("echo 'teste2'")
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时 ruby ./index.rb

输出为:

teste
Run Code Online (Sandbox Code Playgroud)

为什么会这样呢?

这不是输出吗?

testeteste2
Run Code Online (Sandbox Code Playgroud)

ruby shell exec

4
推荐指数
1
解决办法
59
查看次数

为什么会出现重复列错误?

active我正在尝试向我的表添加新列students

我跑去rails g migration add_active_to_students active:boolean生成这个迁移:

class AddActiveToStudents < ActiveRecord::Migration[5.0]
  def change
    add_column :students, :active, :boolean, default: true
  end
end
Run Code Online (Sandbox Code Playgroud)

但是当我运行时rails db:migrate我收到此错误:

PG::DuplicateColumn:错误:关系“学生”的列“活动”已存在:ALTER TABLE“学生”添加“活动”布尔值默认“t”`

正如您所看到的,实际上没有一activestudents

create_table "students", force: :cascade do |t|
    t.integer  "club_id"
    t.string   "email"
    t.string   "address_line_1"
    t.string   "address_line_2"
    t.string   "city"
    t.string   "state"
    t.integer  "postcode"
    t.string   "phone1"
    t.string   "phone2"
    t.string   "first_name"
    t.string   "last_name"
    t.date     "dob"
    t.datetime "created_at",      null: false
    t.datetime "updated_at",      null: false
    t.string   "picture"
    t.integer  "payment_plan_id"
    t.string   "parent1" …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql activerecord ruby-on-rails

4
推荐指数
1
解决办法
3476
查看次数

在Ruby中,为什么可变性意味着解释器不能使用同一对象来表示两个相同的字符串文字?

字符串在Ruby中是可变的。这意味着-与Java不同,解释器不能使用相同的对象来表示字符串文字(即"test",在for循环中,每次迭代都会创建一个新对象)。

有人可以向我解释为什么会这样吗?即,为什么可变性会阻止使用同一对象来表示字符串文字?

ruby string

4
推荐指数
1
解决办法
47
查看次数

如何在 Ruby 的 irb 中获取方法签名或方法描述?

我想知道 Ruby 是否irb有能力提供方法/函数签名或描述。

我知道我可以在 irb 中做类似的事情

[].methods.sort
Run Code Online (Sandbox Code Playgroud)

并获取数组可用的所有方法/函数,但如何获取irb有关特定方法/函数的更多信息(在 中)?

ruby irb

4
推荐指数
1
解决办法
1192
查看次数

4
推荐指数
1
解决办法
1602
查看次数